A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2017-12-27 18:41 编辑

##使用MVC设计模式完成转账的操作
*        事务概述: 指的是逻辑上的一组操作,组成这组操作的各个逻辑单元**要么一起成功,要么一起失败.**
*        MySQL的事务管理:
        *        创建一个账号表:
        *        MySQL的事务管理有两种方式(mysql数据库事务默认是自动提交的.oracle数据库事务是默认不自动提交的)
                *        1.手动开启事务
                *        2.设置一个自动提交的参数
*        JDBC中的事务管理:
        *        JDBC中的事务管理的API:
                *        setAutocomit()设置自动提交.默认为true
                *        commit()提交事务
                *        rollback:回滚事务
*        步骤分析:
        *        1.创建一个页面
        *        2.导入JDBC相关的jar包和工具类
        *        3.创建包结构
        *        4.提交到Servlet--service--dao
        *        5.页面跳转
*        **事务的特性:**
        *        1.原子性: 强调事务的不可分割.(要么成功,要么失败)
        *        2.一致性: 强调的是事务的执行前后.数据的完整性要保持一致
        *        3.隔离性: 一个事务的执行不应该受到其他事务的干扰
        *        4.持久性: 事务一旦结束(提交或回滚)数据就持久的保持到数据库了
*        如果不考虑事务的隔离性,就会引发一些安全性的问题:
        *        一类是读问题:
                *        1.脏读 :一个事务读到另一个事务还没有提交数据(张森给凤姐转钱,凤姐读到后,张森回滚.)
                *        2.不可重复读 :一个事务读到了另一个事务已经提交的update的数据,导致当前事务中多次查询结果不一致
                *        3.虚读/幻读 :一个事务读到另一个事务已经提交的insert的数据,导致当前的事务多次的查询结果不一致.
         *        一类是写问题:
         *        解决引发的读问题:
                 *        设置事务的隔离级别:        
                         *        read uncommited :未提交读.脏读,不可重复读,虚读都可能发生.
                         *        read committed :已提交读,避免脏读.但不可重复读和虚读有能发生.
                         *        repeatable read :可重复读.可以避免脏读,不可重复读,但虚读有可能发生
                         *        serializable :串行化的.避免脏读,不可重复读,虚读的发生.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马