JDBC操作数据库
JDBC简介
JDBC是使用Java操作关系型数据库的一套API。原则上来说只需要利用JDBC提供的接口就可以实现对所有关系数据库的操作,而不用修改Java代码,只需在替换底层数据库时替换对应数据库的驱动(jar包)即可。
下面是对JDBC中API的介绍。
API
这部分是对JDBC中的一些API的说明以及示例代码。
DriverManager
类需要注意的是两个功能:一是注册驱动,二是获取连接。
首先是注册驱动:
1 | // 使用以下代码注册驱动 |
MySQL 5之后的驱动包可以省略注册驱动的步骤
然后是获取连接:
1 | /* |
Connection
类(数据库连接对象)的主要作用是获取执行SQL语句的对象和管理实务。
获取执行SQL的对象:
1 | // 普通执行SQL对象 |
事务管理:
- mysql事务管理:
- 开启事务:BEGIN; / START TRANSACTION;
- 提交事务:COMMIT;
- 回滚事务:ROLLBACK;
mysql默认自动提交事务
- JDBC事务管理:Connection接口中定义了三个对应的方法
- 开启事务:
setAutoCommit(boolean autoCommit)
:true为自动提交服务;false为手动提交服务,即开启事务 - 提交事务:
commit()
- 回滚事务:
rollback()
- 开启事务:
Statement
类的作用就是执行SQL语句。
补充一下,SQL语句有如下3种:
- DDL:对库和表进行增删改查的操作
- DQL:对数据的查询操作
- DML:对数据的增删改操作
1 | /** |
ResultSet
结果对象集的作用是存储了DQL查询语句返回的查询结果的集合,该类封装了如下方法:
1 | /** |
PreparedStatement
继承自Statement
对象,用于执行预编译的SQL语句,以达到预防SQL注入的问题。
PrepareStatement
使用参照以下散布喵
1 | // sql语句中的参数值使用占位符?替代 |
数据库连接池
数据库连接池是一个用来管理和分配数据库连接的容器。
在之前的编码中,我们每一次对数据库的操作都涉及对数据库的连接和释放连接的操作;事实上建立数据库连接需要消耗许多资源,为了减少资源消耗,提高效率,我们需要数据库连接池技术实现对数据库连接资源的管理和分配,其有着如下的好处:
- 资源重用
- 提高系统的响应速度
- 避免数据库的连接遗漏
以下与数据库连接池相关的代码都是使用的阿里的Druid,算是性能最好的数据库连接池项目了。
API
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Takune の Blog!
评论