首先我们需要了解JDBC是什么。JDBC(Java DataBase Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它是一组用Java语言编写的类和接口组成。JDBC 提供了一个种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC 也是个商标名。
JDBC相关类和接口
(1)驱动管理类:DriverManager
(2)连接接口:Connection
(3)语句对象接口:Statement
(4)结果集接口:ResultSet
JDBC的工作原理
(1)注册驱动(加载驱动):主要告诉 JVM 我们的程序将要使用哪一种数据库
(2)获取连接:使用 JDBC 中的类,获得数据库的连接对象 Connection
(3)获得语句执行平台:通过 Connection 可以获取执行者对象,Statement、PreparedStatement.
(4)执行 SQL 语句:使用执行者对象,向数据库中执行 SQL 语句,然后可以得到对应的接口,有单个结果,也可能有结果集 ResultSet。
(5)处理结果
(6)释放对象:释放顺序,从下往上依次释放。
注册驱动两种方式的区别
通过发射加载驱动-------Class.forName("com.mysql.cj.jdbc.Driver");
底层会注册两次---------DriverManager.registerDriver(new com.mysql.jdbc.Driver());
JDBC的简单使用
这个案例是我们上课时创建的一个学生表中的数据
public class TestJdbc01 {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 1.注册驱动
// 这里,其实是用到了反射的原理,通过给定类的名字,让程序自动去找对应的类
// 然后执行得到对应实例
Class.forName("com.mysql.cj.jdbc.Driver");
// 使用注册方法的时候,底层会注册两次,不推荐使用
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 2.获取连接:数据库地址、用户名、密码 Connection
String url = "jdbc:mysql://localhost:3306/库名?serverTimezone=GMT";
String user = "账户名";
String password = "密码";
Connection connection = DriverManager.getConnection(url, user, password);
// 3.获取执行者对象
Statement statement = connection.createStatement();
// 4.准备 SQL 语句
String sql = "select * from student";
// 5.执行 SQL 语句
ResultSet resultSet = statement.executeQuery(sql);
// 6.处理结果
while (resultSet.next()) {
int sid = resultSet.getInt("sid");
String sname = resultSet.getString("sname");
String birthday = resultSet.getString("birthday");
String ssex = resultSet.getString("ssex");
int classid = resultSet.getInt("classid");
System.out.println(sid + "--" + sname + "--" + birthday+ "--" + ssex+ "--" + classid);
}
// 7.关闭资源
resultSet.close();
statement.close();
connection.close();
}
}