- 当前 jdk版本:jdk1.8.0_74
- 当前 jdbc版本:mysql-connector-java-8.0.19
- 注意:jibc驱动最好与jdk是同一个大版本
一、概念
1、用途
Java 数据库连接,是jdk提供的一套类和接口,供我们可以很方便的去操作各种数据库。
2、环境搭建
1.在Java项目根目录创建lib文件夹
2.导入数据库驱动jar包
在项目中创建lib文件夹并将数据库驱动复制到该文件夹中,添加驱动到项目
3.安装驱动
在驱动jar文件上鼠标右键Build Path ->add to Build Path
3、步骤
1、提供数据库的连接信息
2、注册驱动
3、连接到数据库,获取到连接对象
4、编写sql
5、事务开启(可选,当sql需要事务控制时写)
6、预编译sql
7、执行sql
8.1、提交事务(可选,当事务开启时写)
8.2、回滚事务(可选,当事务开启时写)
9、关闭连接,释放资源
二、举例
前置步骤:新建数据库【yebuxiu_jdbc】,在数据库建一张表【userinfo】,如图所示
建表语句:
create table userinfo(
id int primary key auto_increment,
username varchar(10),
password varchar(10)
);
然后开始按以上1-9步骤一步步编写Java代码,增删改查的四个方法,代码及注释如下:
1.增
/**
* 增
*/
public void add() {
// 1、获取数据库连接信息
String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
+ "userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
String driverClass = "com.mysql.cj.jdbc.Driver";
Connection conn = null;
PreparedStatement pst = null;
try {
// 2、注册驱动
Class.forName(driverClass);
// 3、连接数据库,得到连接对象
conn = DriverManager.getConnection(url,user,password);
// 4、写sql
String sql = "insert into userinfo(username,password) values('张三','123')";
// 5、sql预编码
pst = conn.prepareStatement(sql);
// 6、执行sql
int result = pst.executeUpdate();
System.out.println("新增了"+result+"行");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// 7、关闭连接
try {
pst.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.删
/**
* 删
*/
public static void delete() {
// 1、获取数据库连接信息
String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
+ "userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
String username = "root";
String password = "123456";
String classDriver = "com.mysql.cj.jdbc.Driver";
Connection conn = null;
PreparedStatement pst = null;
try {
// 2、注册驱动
Class.forName(classDriver);
// 3、连接到数据库
conn = DriverManager.getConnection(url,username,password);
// 4、写sql
String sql = "delete from userinfo where id = 4";
// 5、预编译sql
pst = conn.prepareStatement(sql);
// 6、执行sql
int result = pst.executeUpdate();
System.out.println("删除了"+result+"行");
} catch (Exception e) {
e.printStackTrace();
}finally {
// 7、关闭连接
try {
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3.改
/**
* 改
*/
public void update() {
// 1、获取数据库连接信息
String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
+ "userUnicode=true&characterEncoding=UTF-8&severTimezone=Asia/Shanghai";
String username = "root";
String password = "123456";
String driverClass = "com.mysql.cj.jdbc.Driver";
Connection conn = null;
PreparedStatement pst = null;
try {
// 2、注册驱动
Class.forName(driverClass);
// 3、连接到数据库
conn = DriverManager.getConnection(url,username,password);
// 4、编写sql
String sql = "update userinfo set name = '李四四'";
// 5、预编译sql
pst = conn.prepareStatement(sql);
// 6、执行sql、
int result = pst.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
// 7、关闭连接
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4.查
/**
* 查
*/
public void select() {
// 1、获取数据库连接信息
String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
+ "userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
String driverClass = "com.mysql.cj.jdbc.Driver";
Connection conn = null;
PreparedStatement pst = null;
ResultSet result = null;
try {
// 2、注册驱动
Class.forName(driverClass);
// 3、连接到数据库
conn = DriverManager.getConnection(url,user,password);
// 4、编写sql
String sql = "select * from userinfo";
// 5、预编译sql
pst = conn.prepareStatement(sql);
// 6、执行sql
result = pst.executeQuery();
// 7、遍历获取执行结果集
while(result.next()) {
int id = result.getInt("id");
String user1 = result.getString("username");
String pwd = result.getString("password");
System.out.println(id+" "+user1+" "+pwd);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
// 8、关闭连接
try {
result.close();
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
版权声明:本文为weixin_56039103原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。