JDBC-事务处理

一,事务的性质

事务具有ACID属性,为了使其达到这些性质的要求,于是产生了相关的编程规范

    1.原子性

    2.一致性:  事务操作前后,数据库的状态 均处于一致性

    3.隔离性:  在并发处理中,事务之间互不干扰

    4.持久性:  一个事务一旦提交,其操作结果就永远保持下来

二,事务的实现原理

    1.将默认属性autocommit(自动提交)设置为false:  事务中的每一个操作不自动提交

    2.调用commit来提交, 使sql语句的操作在数据库上产生效果

    3.若该部分操作出现问题,使用rollback,回滚到上一个数据库稳定状态

    一个注意点:

        关闭connection连接,会自动提交事务,所以在同一个事务中,共用一个connection对象。

三,事务隔离的级别

事务中可能出现的问题:

    1.脏读: 读取到未提交的值

    2.不可重复读: 两次对同一字段读取到的值不一致

    3.幻读: 两次对同一个表的访问不一致(增加数据记录)

由此产生的隔离级别:

    1.读未提交:  可以读去未被提交的值

    2.读已提交: 解决了脏读

    3.可重复读: 解决了不可重复度

    4.串行化: 解决了幻读

实现方法:

        //获取当前连接的隔离级别

        System.out.println(conn.getTransactionIsolation());

        //设置数据库的隔离级别:

        conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

四,DAO类实现的思想

    1.一个基类BaseDAO定义为抽象类,供每个数据对象类继承,其中实现最底层的操作

    2.数据库中每一类数据对应一个 类 ,定义该类的接口,其中声明该类顶层的方法

    3.定义子类,继承BaseDAO基类,实现数据接口,其中使用BaseDAO中的底层操作来实现接口中的方法

    注意点:  通过获取父类的泛型,使BaseDAO基类在每一次被继承后,立马被标记为子类的DAO,于是操作中返回的数据对象,可直接使用泛型对象存储,不需要在传递对象来标记

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于任何的数据库应用来说,事务都是非常重要的,事务是保证底层数据完整的重要手段,没有支持的数据库应用是非常脆弱的。...
    年少懵懂丶流年梦阅读 882评论 0 1
  • JDBC事务处理 事务:一个包含多个步骤的业务操作。如果这个业务被事务管理,要么同时成功,要么同时失败!【原子性、...
    哈哈大圣阅读 161评论 0 2
  • 导语:计算机硬件在飞速发展,数据规模在急速膨胀,但是数据库仍然使用是十年以前的架构体系,WiredTiger 尝试...
    isgiker阅读 3,440评论 0 7
  • java事务的处理 转 https://www.cnblogs.com/Bonker/p/5417967.html...
    小小的Jobs阅读 1,423评论 0 1
  • 为了保证数据的一致性、完整性比如100条数据,插入数据库前50条成功插入,后面50没有成功插入,这就属于不完整数据...
    Corbin___阅读 599评论 0 1