zoukankan      html  css  js  c++  java
  • 事务,mybatis

    数据库事务:一件完整的事情, 要么全部成功,要么就全部失败

    金典案例:转账

    A给B转账:100

         A:-100

         B:+100

    如何开启事务:

    Start transaction;

         之前的转账操作(如果在转账过程中出现异常:rollback)

    Commit;

    事务的特性(ACID):

    原子性:要么全部成功 要么全部失败 不可以分割

    一致性:事务前后,所有的状态都要保持一致

    隔离性:一个事务最好不要受到其他事务的影响

    持久性:将提交或者回滚的事务 存储到数据库中

    不考虑隔离性:

    脏读:读取到另一个事务中未提交的数据

    不可重复读:在同一个事务中,两次查询结果不一样(update)

    虚读(幻读):在同一个事务中,两次查询结果不一样(insert)

    隔离级别:

    1)read uncommitted : 读取尚未提交的数据 :哪个问题都不能解决

    2)read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的

    3)repeatable read:重读读取:可以解决脏读 和 不可重复读 ---mysql默认的

    4)serializable:串行化:可以解决 脏读 不可重复读 和 虚读---相当于锁表

    查看数据库的隔离级别:

        Select @@tx_isolation;

        Mysql 默认的隔离级别:repeatable-read;

        Oracle : read committed

      设置mysql的隔离级别:set session transaction isolation level 设置事务隔离级别


    框架:我们可以简单的理解成为一个半成品 它提供了一套解决方案

    框架的好处:
    框架封装了细节,提高了开发效率,减轻了开发难度。

    mybatis框架:
    mybatis是一个持久层框架,用java语言编写的。
    封装了jdbc。使开发者只需要注意sql语句本身,不用去纠结jdbc的其他细节
    使用了ORM思想: 对象关系映射
    O:Object
    R:Relational
    M:Mapping


    mybatis环境搭建:
    1、创建maven工程
    2、创建实体类和UserDao接口
    3、创建mybatis的核心配置文件
    SqlMapConfig.xml
    4、创建对象映射文件:
    UserDao.xml
    注意:UserDao.xml 需要和UserDao接口 名字一样 并且 路径一样

    环境搭建注意点:
    1、UserDao.xml 和 UserDao.java 名字和路径需要保持一致
    2、映射配置文件的的mapper标签中的 namespace的属性取值必须是dao接口的全限定名
    3、映射配置文件的操作配置(select) ,id属性的取值必须是dao接口中的方法名


    自定义mybatis:

    1、分析出需要的对象
    class Resources
    class SqlSessionFactoryBuilder
    interface SqlSessionFactory
    interface SqlSession

  • 相关阅读:
    Linux tar指令
    关于Json-lib类库的使用
    安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)
    安卓开发笔记——TabHost组件(二)(实现底部菜单导航)
    安卓开发笔记——TabHost组件(一)(实现底部菜单导航)
    安卓开发笔记——ViewPager组件(仿微信引导界面)
    安卓开发笔记——Menu菜单组件(选项菜单,上下文菜单,子菜单)
    安卓开发笔记——Gallery组件+ImageSwitcher组件
    安卓开发笔记——GridView组件
    安卓开发笔记——WebView组件
  • 原文地址:https://www.cnblogs.com/lyhhary/p/10491606.html
Copyright © 2011-2022 走看看