JDBC高级编程和DAO



2017年7月21日学习总结:


一、JDBC高级编程

1,事务处理

①什么是事务?
我的理解是一个单元的一次事情任务,要么都执行,要么都不执行。
在JDBC中,事务默认是自动提交的。
事务具有4个特性ACID:
a,原子性(Atomicity):事务必须是原子工作单元,对于其数据修改,
要么全都执行,要么全都不执行。
b,一致性(Consistency):事务在完成时,必须使所有的数据保持一致状态。
c,隔离性(Isolation):由并发事务所作的修改,必须与任何其它并发事务,
所作的修改隔离。
d,持久性(Durability):事务完成之后,它对于系统的影响是永久性的。

②手动管理事务的流程
a,取消自动提交:Connection.setAutoCommit(false)
b,提交事务:Connection.commit()
c,回滚事务:Connection.rollback()

2,批量更新

①,为什么使用批量更新?
批处理:发送到数据库作为一个单元执行的一组更新语句。
批处理降低了应用程序和数据库之间的网络调用。

②批量更新主要方法
PreparedStatement.addBatch()
将多条预编译的SQL语句,添加到语句列表中。

PreparedStatement.executeBatch()
把语句列表中的所有SQL语句,发送给数据库处理。

PreparedStatement.clearBatch()
清空当前SQL语句列表。 

3,返回自动主键




主要方法:
Connection.prepareStatement(sql,new String[]{column})
第2个参数是希望获得主键值的字段名

PreparedStatement.getGenerateKeys()
获得主键值的ResultSet

4,分页查询

①,假分页(内存分页)
第一次查询表,查出所有的数据,存入内存(list)。
第N次查询时,之间从内存(list)中取出某一页数据。
特点:第1次查询巨慢,以后查询很快,耗内存。

②,真分页(物理分页)
每次查询表,都使用分页SQL查出一页的数据。
特点:每次查询都比较快,节约内存。

③,分页SQL所需要的条件
本页最大行 = page*size
上页最大行 = (page-1)*size 
本页最小行 = (page-1)*size+1

二、DAO

1,什么是DAO?
Data Access Object 数据访问对象
建立在数据库和业务层之间,封装所有对数据库的访问。

2,DAO的作用?
将数据访问逻辑和业务逻辑分开。

3,DAO通常包括:
①,一个DAO工厂类
②,一个DAO接口
③,一个实现DAO接口的具体类
④,数据传递对象(实体对象或值对象)

4,实体对象
将java程序中的对象对应到关系数据库的表中
表和类对应
表中的字段和类的属性对应
记录和对象对应
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值