企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 什么是JDBC? ``` Java Database Connectivity 1. 操作关系型数据库的规范,即接口 2. 各个数据库厂商去实现接口,提供数据库驱动jar包 ``` ### 示例 ``` //1. 导入驱动jar包 //2.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //3.获取数据库连接对象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //4.定义sql语句 String sql = "update account set balance = 500 where id = 1"; //5.获取执行sql的对象 Statement Statement stmt = conn.createStatement(); //6.执行sql int count = stmt.executeUpdate(sql); //7.处理结果 System.out.println(count); //8.释放资源 stmt.close(); conn.close(); ``` ### 为什么执行Class.forName()之后,通过DriverManager.getConnection,就可以获取相关数据库的连接Connection的实现呢? ``` 1. Class.forName()的作用要求JVM查找并加载指定的类 2. 查看com.mysql.jdbc.Driver类的源码,有如下代码 public class Driver extends NonRegisteringDriver implements java.sql.Driver { public Driver() throws SQLException { } // JV会执行该类的静态代码块 // 这是JDBC规范中要求每个数据库厂家的实现类Driver都必须向DriverManager注册自己,才可以用DriverManager获取Connection对象 static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } } } ```