mybatis学习笔记02-配置文件&事务

核心配置文件&事务

  1. 核心配置文件(各个标签是有顺序的)
    1. properties标签(设置键值对或引入外部properties文件)
      1. resource: 填写properties文件的相对路径即可, 使用 ${key} 即可获取相对应的value
      2. url: 填写properties文件的网络地址, 如: file:///E:/idea/framework/mybatis02/src/main/resources/database.properties
    2. setting标签(设置运行时行为)
      <settings>
          <!-- 是否开启驼峰命名规则自动映射 -->
          <setting name="mapUnderscoreToCamelCase" value="true"/>
      </settings>
      
      1. name写参数名, value写参数值
      2. 这些参数可以在官方文档查询: 点击链接即可查询
    3. typeAliases标签(配置别名)
      1. <typeAlias type="类的完整类名" alias="别名"/>
      2. <package name="包名"/>: 此包下的所有类都可以直接使用类名
    4. mybatis的连接池类型, 即 dataSource 中 type 的取值
      1. POOLED: 采用数据库连接池, 获取连接时从池子中获取, 用完归还给连接池
      2. UNPOOLED: 需要获取连接时再创建, 用完关闭连接
      3. JNDI: 采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。
        • 如果不是 web 或 war 工程是不能用的
        • tomcat采用的是dbcp连接池
  2. 事务: 数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成
    1. 事务的四大特性: ACID
      • 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行
      • 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束
      • 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行
      • 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中
    2. 不考虑隔离性会产生的3个问题
      1. 脏读: 一个事务读到了另一个事务未提交的数据.
      2. 幻读: 一个事务读到了另一个事务已经提交的(insert)数据.导致多次查询的结果不一致
      3. 不可重复读: 一个事务读到了另一个事务已经提交(update)的数据.引发一个事务中的多次查询结果不一致.
    3. 解决办法:四种隔离级别
      • read uncommitted : 脏读,不可重复读,虚读都可能发生.
      • read committed : 避免脏读,但是不可重复读和虚读有可能发生.
      • repeatable read : 避免脏读和不可重复读,但是虚读有可能发生的.
      • serializable : 避免脏读,不可重复读和虚读.(串行化的-不可能出现事务并发访问)
      • mybatis 通过 sqlSession 对象的 commit() 方法和 rollback() 方法实现事务的提交和回滚
posted @ 2019-10-25 19:31  _ann  阅读(209)  评论(0编辑  收藏  举报