JDBC
1、加载和注册驱动
注意:在mysql8.0以上 动态加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
- 为什么这样可以注册驱动呢?
答案:查看com.mysql.cj.jdbc.Driver 或者com.mysql.jdbc.Driver 的源码,因为里面有一个DriverManager.registerDriver() 来注册数据库驱动
2.jdbc的核心API
2.1 DriverManager 类
(一)DriverManage的作用
(1)管理和注册驱动············上面已经提到
(2)创建数据库的链接
public class Demo { public static void main(String[] args) throws SQLException { String url = "jdbc:mysql://localhost:3306/test"; //1) 使用用户名、密码、 URL 得到连接对象 Connection connection = DriverManager.getConnection(url, "root", "root"); //com.mysql.jdbc.JDBC4Connection@68de145 System.out.println(connection); } }
2.2 Connection接口
(一)Connection的作用
Connection接口,具体的实现类由数据库的厂商实现,代表一个连接对象
(二)Connection方法
2.3 Statement接口
(一)Statement 作用:
代表一条语句对象,用于发送 SQL 语句给服务器,用于执行静态 SQL 语句并返回它所生成结果的对象。
(二)Statement 方法:
2.4释放资源
1) 需要释放的对象: ResultSet 结果集, Statement 语句, Connection 连接
2) 释放原则:先开的后关,后开的先关。 ResultSet -》 Statement -》Connection
3) 放在哪个代码块中: finally 块
例子:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; /** * 创建一张学生表 */ public class Demo4DDL { public static void main(String[] args) { //1. 创建连接 Connection conn = null; Statement statement = null; try { conn = DriverManager.getConnection("jdbc:mysql:///day24", "root", "root"); //2. 通过连接对象得到语句对象 statement = conn.createStatement(); //3. 通过语句对象发送 SQL 语句给服务器 //4. 执行 SQL statement.executeUpdate("create table student (id int PRIMARY key auto_increment, name varchar(20) not null, gender boolean, birthday date)"); //5. 返回影响行数(DDL 没有返回值) System.out.println("创建表成功"); } catch (SQLException e) { e.printStackTrace(); } //6. 释放资源 finally { //关闭之前要先判断 if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
如果生活变得难以忍受,我们会想到改变我们的环境。