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程序中的对象对应到关系数据库的表中
表和类对应
表中的字段和类的属性对应
记录和对象对应