什么是JDBC
JDBC(Java DataBase Connectivity):Java数据库连接,简单来说,就是用Java语言来操作数据库。
JDBC 实现(以MySQL 8.0 为例)
-
加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
如果是MySQL 5.x的话使用的是:
Class.forName("com.mysql.jdbc.Driver");
Driver类是一个静态类,在加载类的时候就会创建一个实例。 -
获得一个数据库连接Connection
// 连接mysql的协议 String url = "jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=utf8&useSSL=true"; String user = "root"; // 数据库的用户名 String pwd = "root"; // 数据库的密码 Connection connection = DriverManager.getConnection(url,user,pwd);
Connection类:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
常用方法:
函数 | 作用 | 参数 | 返回值 |
---|---|---|---|
createStatement() | 获得一个 Statement 实例 | 无 | Statement |
prepareStatement(String sql) | 创建一个已经拥有SQL语句的PreparedStatement 对象 | 无 | PreparedStatement |
prepareCall(String sql) | 创建一个 CallableStatement 对象来调用数据库存储过程 | String,sql | CallableStatement |
setAutoCommit(boolean autoCommit) | 设置提交方式是手动还是自动 | boolean | 无 |
getAutoCommit() | 获得当前对象的提交方式 | 无 | boolean |
commit() | 将上一次提交之后的改变提交到数据库 | 无 | 无 |
rollback() | 回滚,取消在当前事务中进行的所有更改,并释放此 Connection 对象当前持有的所有数据库锁。 | 无 | 无 |
close() | 关闭当前连接,释放此 Connection 对象的数据库和 JDBC 资源 | 无 | 无 |
isClosed() | 判断当前对象是否已经关闭 | 无 | boolean |
getMetaData() | 获取一个 DatabaseMetaData 对象,该对象包含关于此 Connection 对象所连接的数据库的元数据。元数据包括关于数据库的表、受支持的 SQL 语法、存储过程、此连接功能等等的信息。 | 无 | DatabaseMetaData |
setReadOnly(boolean readOnly) | 此链接作为只读模式存在 | boolean | 无 |
-
得到一个Statement
Statement:是一个用于执行静态 SQL 语句并返回它所生成结果的对象
常用方法:
函数 | 作用 | 参数 | 返回值 |
---|---|---|---|
executeUpdate(String sql) | 可以执行DDL和DML语句,即可执行insert、update、delete语句和create table、alter table、drop table等语句,返回 | String | int,成功执行的记录数 |
executeQuery(String sql) | 执行DQL查询语句 | String | ResultSet,返回ResultSet结果集 |
execute(String sql) | 可以执行前两个方法能执行的SQL语句,该方法用来执行增、删、改、查所有的SQL语句 | String | 返回值为boolean类型,表示执行的SQL语句是否有结果 |