JDBC(Java Data Base Connectivity ),Java数据库连接
使用方式:需要添加驱动包,将驱动包配置到lib,并将lib添加到Build Path
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