JDBC-数据库事务(transaction),封装DAO

一个补充点:写代码处理异常什么时候try/catch,什么时候用throws:

在写工具方法的时候,用throws。如要涉及关闭资源的,要用tyr/catch;在main方法中要运行好几个方法,这时候整体用try/catch。

事务:

 

 

 

====================================

之前通用的增删改操作是这样的:

 

 

要考虑事务的增删改,要修改,可以是用外面传进来的连接,不要自己创建连接:

 

 然后在进行事务操作:

 

 

 

 补充,如果要用数据哭库连接池的时候,最后setAutoCommit要改会成(true):

 

 =============================================

事务的ACID属性:

 

 

 

 

 

 

 

 

 

 ==================================

通用查询操作,用与返回数据库里一条记录,操作事务要做的改动:

 

 

 

 

=====

测试操作事务的增删改工具类,和查询工具类:

 

 

 

 因为当前的隔离级别是读未提交,所以以上测试会出现脏读。

=============

虽然数据库的当前隔离级别是读未提交(mysql的默认隔离级别是可重复读),但是我们可以给运行的连接设置隔离级别为读已提交,这样就可以解决脏读问题:

 

 

=======================

补充一个查询特殊值的通用方法:

 

 

=============================================

然后创建一个BaoseDAO类,把增删改,查询一个,查询多个,查询特殊数值这个几个通用工具类都封装到这个类里面。

 

 虽然里面没有抽象方法,但还是声明为一个抽象类。

======

然后创建一个接口(以customer表为例,所以要把之前写了customer类的bean文件impor进来

 

 把要对这张表进行的操作的抽象方法,都写进去。

 

 

 

 

 

 

 

 

 

 ============

接下来写一个具体的实现类:

 

 

 

 

 ========================================

优化DAO(更多解释还是去看视频吧,有点复制)

 

posted @ 2021-03-31 16:10  即墨非音  阅读(211)  评论(0)    收藏  举报