JDBC(Java Data Base Connectivity ),Java数据库连接

使用方式:需要添加驱动包,将驱动包配置到lib,并将lib添加到Build Path

20191230A.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DriverManager 驱动管理类
作用一:1. 注册驱动 2. 获得数据库连接

Connection 连接对象
作用:1. 创建执行SQL语句的对象
Statement createStatement() 执行SQL语句,有SQL注入的危险
PreparedStatement prepareStatement(String sql) 预编译SQL语句,解决SQL注入问题
CallableStatement prepareCall(String sql) 执行SQL中的存储过程
2. 进行事务管理
setAutoCommit(boolean autoCommit) 设置事务是否自动提交
commit() 事务提交
rollback() 事务回滚

Statement 执行SQL语句
作用: 1. 执行SQL语句
boolean execute(String sql) 执行SQL,执行的是select则返回true,否则返回false
ResultSet executeQuery(String sql) 执行SQL中的select语句
int executeUpdate(String sql) 执行SQL中的insert/update/delete
2. 执行批处理操作
addBatch(String sql) 添加到批处理
executeBatch() 执行批处理
clearBatch() 清空批处理

ResultSet 结果集
.next() .getXxx() .getObject(...)

JDBC的资源释放 .close()
Connection对象要及时、正确关闭,尽量晚创建、尽量早释放
1
2
3
4
SQL注入漏洞
1. 在连接sql语句中插入or关键字
2. 在连接sql语句中插入注释字符--
解决办法:使用PreparedStatement,该变量出用?代替,变量的赋值下表从1开始
1
2
3
4
数据库连接池:
连接池是创建和管理一个连接的缓冲池技术,这些连接准备好了被任何需要它们的线程使用。

C3P0连接池,默认查找src路径下C3P0的配置文件

存放在github中的JDBC示例代码:

https://github.com/hzebin/JavaStudy_JDBC