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