由于平时经常使用持久层框架,早已把最初的JDBC忘到脑后去了,但是JDBC是一切持久层框架的根本,如果想要深入理解框架,就必须要掌握JDBC,最初学JDBC的时候只知道死记硬背那7个步骤,却从来没有理解那些步骤的由来。
首先我们要理解JDBC是什么,我个人的理解就是通过java代码来操作数据库,所以和我们直接用可视化工具操作数据库没有本质的区别,所以JDBC的7个步骤就可以类比为我们使用可视化工具的步骤
一、JDBC所需的四个参数(user,password,url,driverClass)
如果我们想用可视化工具操作数据库,第一步肯定要下载工具(相当于驱动程序driverClass)和准备好用户名和密码
// 1.JDBC所需的四个参数
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/login?serverTimezone=GMT";
String username = "root";
String password = "root";
二、加载数据库驱动
第二部加载jdbc驱动就相当于打开了我们的可视化工具
// 2.加载数据库驱动 == 打开了Navicat
Class.forName(driver);
三、创建数据库的连接
如果创建数据库的连接你觉得不好理解,那么下边的操作你一定很熟悉,这里我们要输入用户名和密码还有主机端口号等信息
如果使用代码代替这个步骤就是下面这样,DriverManager是驱动管理器,它有个获取连接的getConnection方法,参数就是url和用户名密码,返回一个连接对象Connection
// 3.创建数据库的连接
Connection connection = DriverManager.getConnection(url, username, password);
返回的连接对象就相当于这个数据库连接
四、创建一个Statement(或者preparedStatement )
创建一个Statement可能更加难以理解了,但是下边的操作你一定很熟悉了,我们要写sql就要新建一个查询,可以把Statement(或者preparedStatement )理解为一个查询对象
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
我们需要在第三步创建的连接里新建一个查询,所以用connection的createStatement方法创建一个查询对象,也就是执行sql的对象
// 4.执行sql的对象 == 新建一个查询对象
Statement statement = connection.createStatement();
五、执行SQL语句
这一步就很好理解了,就是写sql和执行sql了
我们用sql对象statement的executeQuery方法执行一个查询语句,把结果放在ResultSet里
// 5.执行sql语句 == 写sql 和 执行sql
String sql = "select * from employee";
ResultSet resultSet = statement.executeQuery(sql);
六、遍历结果集
当我们执行了sql就会在控制台显示信息,我们就需要读取它
// 6.遍历结果集 == 输出结果
while (resultSet.next()) {
System.out.println(resultSet.getObject("id"));
System.out.println(resultSet.getObject("name"));
System.out.println(resultSet.getObject("age"));
System.out.println(resultSet.getObject("email"));
System.out.println("===========================================");
}
七、释放资源
当我们用完了可视化工具也会关闭它一样不关闭就会占用资源
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
只要类比我们平时用可视化工具的步骤,就完全可以理解jdbc的7个步骤,根本不需要死记硬背