JDBC
# 1.JDBC
# 前言
JDBC = Java DataBase Connectivity
JDBC 本质是一套接口,SUN公司制定的。目的是解耦合,降低程序的耦合度,提高程序的扩展性。因为每一个数据库的底层实现原理都不一样
对应驱动jar包
mysql-connector-java-5.1.23-bin.jar
# 编程六步
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。)
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行SQL语句(DQL DML....)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源(使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
/*
JDBC 编程六步
*/
import java.sql.*;
public class JDBCTest{
public static void main (String[] args){
Connection conn=null;
Statement stat=null;
try{
//1 注册驱动
Driver driver = new com.mysql.cj.jdbc.Driver();//多态,父类型对象引用指向子类型对象
DriverManager.registerDriver(driver);
//2 连接驱动
String url="jdbc:mysql://127.0.0.1:3306/mydbtest?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true";
String user="root";
String password="root";
conn = DriverManager.getConnection(url,user,password);
//3 获取数据库操作对象(Statement专门执行sql语句的)
stat =conn.createStatement();
//4 执行sql
String sql = "insert into dept(deptno,dname,loc) values(50,'人事部','北京')";
//专门执行DML语句的(insert,delete,update)
//返回值是 “影响数据库中的记录条数”
int count = stat.executeUpdate(sql);
System.out.println(count == 1 ?"保持成功":"保存失败");
//5 处理查询结果
}catch(SQLException e){
e.printStackTrace();
}finally{
//6 释放资源
//为了保证资源一定释放,在finally 语句块中关闭资源
//并且要遵循从小到大依次关闭
//分别对其try..catch
try{
if(stat!=null){
stat.close();
}
}catch(SQLException e){
e.printStackTrace();
}
try{
if(conn!=null){
conn.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
上次更新: 2022/04/01, 15:14:40