Java自学第6课:电商项目(2)

1 创建工具类并连接数据库

在工程src右键单击new,新建util包

再创建DBUtil类

数据库交互需要有数据库支持的包,这是官方给出的类库。

先声明1个代码块

    // 静态代码块 只加载1次static{try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {System.out.println("mysql初始化失败了,请重新尝试");e.printStackTrace();} // 通过反射机制 加载驱动}

   再写链接的成员方法

    // 写1个方法来获取连接// Connection 是一个接口 interfacepublic static Connection getConn() {Connection conn = null; // 声明此接口 为了调用其方法 从而获取连接try {// 加载驱动  库conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ebuys?useUnicode=true&characterEncoding=utf8","root","1234");} catch (SQLException e) {System.out.println("连接失败,是否有启动mysql数据库呢");e.printStackTrace();}return conn;    }

写的过程中要不断的指定类是哪个包里的。

在写关闭链接的方法

   public static void closeConn(Connection conn) {if(null != conn) {try {conn.close();} catch (SQLException e) {System.out.println("关闭失败了");e.printStackTrace();}}}public static void closeState(PreparedStatement pstmt) {if(null != pstmt) {try {pstmt.close();} catch (SQLException e) {System.out.println("close pstmt error"+pstmt);e.printStackTrace();}}}public static void closeResult(ResultSet rs) {if(null != rs) {try {rs.close();} catch (SQLException e) {System.out.println("close rs error"+rs);e.printStackTrace();}}}

可以把三个关闭写为一个序贯的方法

    public static void closeAll(Connection conn, PreparedStatement pstmt, ResultSet rs) {closeResult(rs);closeState(pstmt);closeConn(conn);}

这时候前三个方法都可以写为私有的了,当然公有的也行。

最后,写一个main方法

    public static void main(String[] args) {try {DBUtil.getConn();System.out.println("数据库连接成功");} catch (Exception e) {System.out.println("数据库连接失败");e.printStackTrace();}}

调用了整个连接数据库的过程。下面用java application测试一下

当然 在测试前,先看看服务里mysql是不是在运行中,这时候说mysql数据库链接成功,说明代码没问题。注意用的是java application,syso方法是在console里显示的,不是在网页上,因为这里只是调用数据库,没有在tomcat服务器上运行。

2

为了处理业务,再创建1个控制层的包

再创建1个类,也可以创建servlet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/136603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址,并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…

NAT协议

目录 NAT 前言 NAT地址转换表 NAT分类 前言 静态NAT 192.168.1.2访问200.1.1.2执行过程 动态NAT 192.168.1.2访问200.1.1.2执行过程 NAPT 192.168.1.2的5000端口访问200.1.1.2的80端口执行过程 基本命令 配置动态NAPT转换 定义内外网接口 配置NAPT 静态NAPT配置…

简述SVM

概述 SVM,即支持向量机(Support Vector Machine),是一种常见的监督学习算法,用于分类和回归问题。它是一种基于统计学习理论和结构风险最小化原则的机器学习方法。 SVM的主要思想是在特征空间中找到一个最优的超平面…

【Shell脚本8】Shell printf 命令

Shell printf 命令 printf 命令模仿 C 程序库(library)里的 printf() 程序。 printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。 printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化…

Elasticsearch 集群状态详解

cluster state 返回结果详解 GET /_cluster/statehttps://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html详细信息如下: {"cluster_name": "business-log","cluster_uuid": "ArYy-qmCTbCQTDUI8o…

conda清华源安装cuda12.1的pytorch

使用pytorch官方提供的conda command奇慢无比,根本装不下来(科学的情况下也这样) 配置一下清华源使用清华源装就好了 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ 配置方法:conda config --…

strtok函数详解:字符串【分割】的利器

目录 一,strtok函数简介 二,strtok函数的用法 三,strtok函数的注意事项 一,strtok函数简介 strtok函数可以帮助我们将一个字符串按照指定的分隔符进行分割,从而得到我们想要的子字符串。 🍂函数头文件&am…

腾讯待办是不是停了?怎么用其它提醒软件查看导出的ics文件

腾讯待办是腾讯企业旗下的业务产品,其主要以微信小程序的形式使用,定位于待办事项和日程管理工具,支持罗列日程待办清单、设定定时提醒,帮助大家规划日常事务和进行时间管理,成功创建待办事项后可在对应的公众号和绑定…

Python教程之字典(Dictionary)操作详解

文章目录 前言一、创建字典二、访问字典里的值三、访问字典里的值四、删除字典元素五、字典键的特性六、字典内置函数&方法七、字典练习代码关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Py…

tqdm学习

from tqdm import tqdmepochs 10 epoch_bar tqdm(range(epochs)) count 0 for _ in epoch_bar:count count1print("count {}".format(count))print(_)每次就是一个epoch

如何在Jetpack Compose中显示PDF?

当读取和显示 PDF 的组件缺失时该怎么办? 声明式编程可以拯救你. Jetpack Compose已经存在好几年了, 但_在某些方面它的使用仍然面临挑战_. 例如, 缺少用于查看PDF的官方组件, 而为数不多的第三方库通常也是有代价的. 在我们的应用中, 我们会遇到在许多场景中显示 PDF 的需求…

[Matlab]基于LSTM+NSGA2的风光火力发电策略优化

最近比较忙,好久没分享案例啦,今天简单分享一个滚动时域的多目标优化 一 模型介绍 1 风电 2 光伏 3 火电 4 储能 5 用电需求 等五个对象。 其中风电和光伏还有用电需求,用历史数据LSTM网络,训练一个预测模型;火电根据策…

2.【自动驾驶与机器人中的SLAM技术】左乘模型推导ESKF

目录 1. 证明题 证明:若某个高斯随机变量为零均值,协方差为对角线矩阵且大小相同(各向同性),那么在乘任意旋转矩阵以后,其均值仍为零,且协方差不变; 2. 代码实现运动方程将F矩阵…

TCP网络编程

一)TCP Socket介绍: 1)TCP和UDP有着很大的不同,TCP想要进行网络通信的话首先需要通信双方建立连接以后然后才可以进行通信,TCP进行网络编程的方式和文件中的读写字节流类似,是以字节为单位的流进行传输 2)针对于TCP的套接字来说,J…

Kotlin(十) 空指针检查、字符串内嵌表达式以及函数默认值

空指针检查 我们在之前的章节里,有定义一个Study的类,它有两个函数,一个doHomework(),一个readBooks()。然后我们定义个doStudy函数,来调用它们,代码如下: fun doStudy(study: Study) {study.doHomework(…

TSINGSEE青犀智能分析网关工服识别算法,如何最大限度保障工人安全?

众所周知,TSINGSEE青犀智能分析网关算法繁多,大多数算法已经和大家讲解过了,今天就和大家聊一聊工服识别算法。工服识别算法一般应用于工地、化工、煤矿等场所,用来监督检测施工人员是否按照要求着工服,最大程度保障人…

面试10000次依然会问的【线程池】,你还不会?

线程池的基本概念 线程池是一种基于池化技术的线程使用方式,它允许我们有效地管理和复用线程,减少线程的创建和销毁的开销,从而提高系统的响应速度。在Java中,线程池的管理主要通过ThreadPoolExecutor类来实现。 线程池的定义与…

IntelliJ IDEA - Git Commit 后 Commit 窗口不消失解决方案

这个现象是在 2023 年版本后开始的,一开始以为是 Mac 系统的原因,后来发现原来 Windows 也这样,所以应该只跟 IDEA 版本有关 可以看到左侧 commit 后,这个侧边栏还在,按理讲在以前的版本是之前消失,这样使…

SOLIDWORKS 2024新功能之Visualize篇

SOLIDWORKS 2024新功能Visualize 增强了创建引人注目的外观的功能 SOLIDWORKS Visualize 使用 Dassault Systmes 的企业 PBR 着色模型 (DSPBR) 来准确复制金属、玻璃、塑料和其他曲面的逼真外观。 DSPBR 是材料模型,用于基于物理的渲染,受 3DEXPERIENCE…

动态规划(3)---Leetcode509.斐波那契数

题目 分析 很明显的动态规划&#xff0c;直接写出。之前都是用递归来写。 题解 class Solution {public int fib(int n) {if (n0) return 0;if (n1) return 1;int q0,p1,r0;for(int i2;i<n;i){rqp;int tmpp;pr;qtmp; }return r;}