JDBC介绍
JDBC全称是Java Database Connectivity(java数据库连接),是java连接数据库的标准和规范。
JDBC的作用
用于执行SQL语句的Java API(Java语言通过JDBC可以操作数据库)。
JDBC的好处
- 使用简单,只需要会调用JDBC中的方法即可。
- 使用同一套Java代码,进行少量的修改就可以访问其他的JDBC支持的数据库。
JDBC四个核心对象
- DriverManager:驱动管理(驱动的注册,打开连接)
- Connection:表示与数据库创建的连接(控制连接,处理事务)
- PreparedStatement:设置参数,执行sql语句
注:PreparedStatement和Statement的联系与区别?
联系:两者都是处理器对象,都是负责执行SQL语句,PreparedStatement是Statement的子接口,拥有更丰富的API
区别:PreparedStatement可以防止SQL注入,Statement不可以 - ResultSet:结果集(封装了查询语句中返回的所有数据)
JDBC操作步骤
- 导入驱动包
JDBC会用到的包:
-
java.sql:JDBC访问数据库的基础包,在JavaSE中的包。如:java.sql.Connection
-
javax.sql: JDBC访问数据库的扩展包
导入成功效果图
- 加载驱动
第一种方式
//版本8.xxx com.mysql.cj.jdbc.Driver
//版本5.xxx com.mysql.jdbc.Driver
Class.forName("com.mysql.cj.jdbc.Driver"); //只加载一次(推荐使用)
第二种方式
// DriverManager.registerDriver(new Driver());//加载了两次,Driver里面有静态代码块,new了之后类加载完就加载了一次,外面的api方法又加载了一次
第三种方式
//3.不显示加载驱动类(jar包里面有默认路径,也就是第一种)
就是如果所示这个依赖包的配置文件,有的jar包没有该文件
- 获得连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC", "root", "root");
- 获取预处理器对象(获得执行sql语句的对象)
PreparedStatement preparedStatement = connection.prepareStatement("insert into t_user(id,name) values (?,?)");
- 设置参数
// setInt(第几个参数,值);
preparedStatement.setInt(1,1);
preparedStatement.setString(2,"杜甫");
preparedStatement.setInt(1,2