前言
调用数据库需要下载对应数据库的驱动
建议把参数写到properties中
JDBC编程六大步骤
1.注册驱动(连接对应品牌的数据库)
2.获取连接(表示JVM的进程和数据库进程之间的通道打开,使用完后一定要关闭)
3.获取数据库操作对象(专门执行sql语句的对象)
4.执行sql语句(DQL,DML…)
5.处理查询结果集(只有当第四步执行的是select语句时才有这一步)
6.释放资源(使用完资源之后一定要关闭资源)
1.注册驱动
DriverManager类的registerDriver(Driver driver)注册所需驱动
Driver driver
= new com.mysql.cj.jdbc.Driver();
DriverManager
.registerDriver(driver
);
常用方式
Class.forName(“com.mysql.cj.jdbc.Driver”);加载这个类来运行静态代码块实现驱动的注册
常用原因:参数是一个字符串,字符串可以写到properties中
2.获取连接
DriverManager类的getConnection(String url, String root, String password)获取到与数据库连接的Connection类
Connection con
= null
;
con
=DriverManager
.getConnection( url
, user
, password
);
3.创建可执行sql语句的对象(Statement对象)
通过连接connection对象的creatStatement()创建可执行sql语句对象
Statement statement
= null
;
statement
=con
.createStatement();
4.执行sql语句
使用String sql=" …"传递sql语句到数据库并执行返回结果
jdbc中的sql语句不能有分号
statement对象中executeUpdate(sql)专门执行DML语句(insert delete update) 返回值为受影响的数据库中记录条数
插入
insert into …
删除
delete
更新
update
-------
statement对象中executeQuery(sql)专门执行DQL语句(select)返回值为查询结果集
查询
select
5.处理查询结果集
getString()方法的特点是:不管数据库中数据类型是什么,都以String形式返回;下标都是从1开始
6.释放资源
先释放ResultSet再释放statement最后释放connection
7.使用ResourceBundle类调用propreties文件(重点)
使用ResourceBundle类的getBundle(String basename)来实现调用,通过getString(String key)来获取所需数据
8.代码
public void JDBCTest(){
Connection con
= null
;
Statement statement
= null
;
ResultSet set
= null
;
try {
ResourceBundle bundle
= ResourceBundle
.getBundle("jdbc");
String driver
= bundle
.getString("Driver_Name");
String url
= bundle
.getString("url");
String user
= bundle
.getString("user");
String password
= bundle
.getString("password");
Class
.forName(driver
);
con
= DriverManager
.getConnection(url
, user
, password
);
statement
= con
.createStatement();
String sql
= "select * from s";
set
= statement
.executeQuery(sql
);
while(set
.next()){
System
.out
.println(set
.getString(1)+"|"+set
.getString(2)+"|"+set
.getString(3)+"|"+set
.getString(4));
}
} catch (SQLException | ClassNotFoundException e
) {
e
.printStackTrace();
}finally {
if(set
!=null
){
try {
set
.close();
} catch (SQLException e
) {
e
.printStackTrace();
}
}
if(statement
!=null
){
try {
statement
.close();
} catch (SQLException e
) {
e
.printStackTrace();
}
}
if(con
!=null
){
try {
con
.close();
} catch (SQLException e
) {
e
.printStackTrace();
}
}
}
}