1、JDBC是什么:
用于执行SQL语句的Java API
用来连接Java编程语言和数据库
2、JDBC驱动程序
JDBC-ODBC桥驱动程序
将所有的JDBC的调用传递给ODBC,ODBC再调用本地数据库驱动程序代码操作数据库数据.
本地API驱动程序
将JDBC API映射成数据库特定的客户端API
网络协议驱动程序
纯Java语言编写,JDBC把对数据库的访问请求传递给网络上的中间件服务器;中间件服务器先把请求转换成数据库通信协议请求,再与数据库进行交互
本地协议驱动协议
使用纯Java语言编写,将JDBC调用转换为数据库特定的网络通信协议,再与数据库进行交互
JDBC常用API
Driver接口
DriverManager类
Connection接口
Statement接口
PreparedStatement接口
ResultSet接口
JDBC编程步骤:
(1)加载并注册数据库驱动程序
(2)通过DriverManager类获取数据库连接
(3)通过Connection对象获取Statement对象
(4)使用Statement执行SQL语句
(5)操作结果集
(6)关闭并释放资源
示例代码
import java.sql.*;
public class Example {
public static void main(String[] args) throws Exception {
Statement stmt = null;
ResultSet rs= null;
Connection conn = null;
try{
//1.注册数据库的驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
//2.通过 DriverManager获取数据库连接
String url="jdbc:mysql://localhost:3306/jdbc"+
"?serverTimezone=GMT%2B8&useSSL=false";
String username = "root"; //数据库用户名
String password = "root"; //数据库密码
conn = DriverManager.getConnection(url,username,password);
//3.通过 Connection 对象获取 Statement 对象
stmt = conn.createStatement();
//4.使用 Statement 执行 SQL语句
String sql= "select* from users";
rs= stmt.executeQuery(sql);
//5.操作结果集
System.out.println("id | name | password"+ "| email | birthday");
while (rs.next()) {
int id = rs.getInt("id"); //通过列名获取指定列的值
String name = rs.getString("name");
String psw= rs.getString("password");
String email = rs.getString("email");
Date birthday = rs.getDate("birthday");
System. out. println(id+" | "+ name + " | "+ paw+
" | "+ email+" | "+ birthday);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
//6.回收数据库资源
if (rs != null) {
try{
rs.close();
}catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (stm t != null) {
try{
stmt.close();
}catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if (conn != null) {
try{
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
}
}