文章目录
- JDBC相关
- JDBC-API详解
- 一、DriverManager
- 1.DriverManager(驱动管理类)作用
- 二、Connection
- 1.Connection(数据库连接对象)作用
- 2.具体操作
- **获取执行SQL对象**
- **事务管理**
- 三、Statement
- 1.Statement作用
- 执行SQL语句
- 四、ResultSet
- 1.ResultSet(结果集对象)作用
- 2.获取查询结果
- 3.使用步骤
- 五、PreparedStatement
- 1.获取PreparedStatement对象
- 2.设置参数值
- 3.执行SQL
- 六、数据库连接池
- 1.数据库连接池简介
- 2.数据库连接池实现
- 2.数据库连接池实现
JDBC相关
JDBC-API详解
一、DriverManager
1.DriverManager(驱动管理类)作用
(1).注册驱动
(2).获取数据库连接
二、Connection
1.Connection(数据库连接对象)作用
(1).获取执行SQL的对象
(2).管理事务
什么是事务?数据库中的事务是指对数据库执行一批操作,在同一个事务当中,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。
2.具体操作
获取执行SQL对象
(1).普通执行SQL对象
Statement createStatement()
(2).预编译SQL的执行SQL对象:防止SQL注入
PreparedStatement prepareStatement(sql)
(3).执行存储过程的对象(不常用)
CallableStatement prepareCall(sql)
事务管理
(1).MySQL事务管理
开启事务:BEGIN;/START TRANSACTION;
提交事务:COMMIT;
回滚事务:ROLLBACK;
注:MySQL默认自动提交事务
(2).JDBC事务管理:Connection接口中定义了3个对应的方法
开启事务:setAutoCommit(bollean autoCommit):true为自动提交事务;false为手动提交事务,即为开启事务
提交事务:commit()
回滚事务:rollback()
三、Statement
1.Statement作用
执行SQL语句
int executeUpdate(sql)
执行DML、DDL语句,返回值:(1).DML语句影响的行数;(2).DDL语句执行后,执行成功也可能返回0
ResultSet executeQuery(sql)
执行DQL语句,返回值:ResultSet结果集对象
四、ResultSet
1.ResultSet(结果集对象)作用
封装了DQL查询语句的结果
ResultSet stmt.executeQuery(sql);
以上语句执行DQL语句,返回一个ResultSet对象
2.获取查询结果
boolean next();
(1).将光标从当前位置向前移动一位;(2).判断当前行是否为有效行
返回值:(1).true:有效行,当前行有数据;(2).false:无效行,当前行无数据
xxx getXxx(参数);
上述语句用于获取数据,其中xxx表示数据类型,如:int getInt(参数);String getString(参数)
参数:(1).对于int,参数是列的编号(从1开始);(2).对于String,参数是列的名称
3.使用步骤
(1).游标向下移动一行,并判断该行是否有数据:next()
(2).获取数据:getXxx(参数)
// 循环判断游标是否是最后一行末尾
while (rs.next()) {
// 获取数据
rs.getXxx(参数);
}
五、PreparedStatement
作用:预编译SQL语句并执行,预防SQL注入问题
什么是SQL注入:SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法
1.获取PreparedStatement对象
// SQL语句中的参数值使用? 占位符替代
String sql = "select * from user where username = ? and password = ?";
// 通过Connection对象获取并传入对应的SQL语句
PreparedStatement pstmt = conn.prepareStatement(sql);
2.设置参数值
PreparedStatement对象:setXxx(参数1,参数2):给?赋值
(1)Xxx:数据类型;如setInt(参数1,参数2)
(2)参数:
参数1:?的位置编号,从1开始
参数2:?的值
3.执行SQL
executeUpdate();/executeQuery();
由于创建PreparedStatement对象时已经传入了SQL语句,所以此处不用再传入SQL语句
六、数据库连接池
1.数据库连接池简介
(1).数据库连接池是个容器,负责分配、管理数据库连接(Connection);
(2).它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
(3).释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
好处:资源重用;提升系统响应速度;避免数据库连接遗漏
下图中蓝色部分为数据库连接池
2.数据库连接池实现
-
标准接口:DataSource
-
官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口
-
功能:获取连接
Connection getConnection()
-
中…(img-NtgZIOhw-1712401172599)]
上图中蓝色部分为数据库连接池
2.数据库连接池实现
-
标准接口:DataSource
-
官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口
-
功能:获取连接
Connection getConnection()
-