六、mybaitis学习 ——config全局配置文件
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。文档的顶层结构如下:
configuration 配置
1. properties 属性
2. settings 设置
3. typeAliases 类型别名
4. typeHandlers 类型处理器
5. objectFactory 对象工厂
6. plugins 插件
7. environments 环境
○environment 环境变量
1) transactionManager 事务管理器
2)dataSource 数据源
8.databaseIdProvider 数据库厂商标识
9.mappers 映射器
一、properties属性—-引入外部properties配置文件
两个属性
1
resource属性:读取类路径下属性
url属性:网络或磁盘路径下属性
2
property子元素来传递
1)name:元素id
2)value:元素值
这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。例如:
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
注意:properites元素读取的顺序及规则
1.在 properties 元素体内指定的属性首先被读取。
2.然后根据resource 属性读取类路径下属性文件
或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
3最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。
二、settings 运行时行为设置
关于二级缓存:sqlSessionFactory级别的缓存
1.实体类对象需要实现序列化接口
2.需要在核心配置文件中开启二级缓存
3.需要在mapper配置文件中开启使用二级缓存
4.需要在缓存的sql语句配置中配置使用二级缓存
5.操作的过程中需要提交之后才会存入到缓存中
三、typeAliases别名
两个子标签
typeAlias:
type属性:全限定类名
alias:别名
package
class属性:为整个包下的类起别名,默认别名为类名
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
<typeAlias alias="Comment" type="domain.blog.Comment"/>
</typeAliases>
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
四、environments环境配置
<!-- environments环境配置,可以配置多种环境 default指定使用某种环境,可以达到快速切换
--|子标签environment配置一个具体的环境信息,必须有如下两个标签,
id表示当前环境的唯一标识
--|子标签transactionManager 事物管理器
type属性 事物管理器的类型 有两种取值
JDBC
managed
--|子标签dataSource 数据源
type属性: 有三种[UNPOOLED|POOLED|JNDI]
UNPOOLED:不使用连接池
POOLED:使用mybatis提供的连接池
JNDI:使用web容器的连接池
--|子标签property:配置连接池信息
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
五、mappers sql映射文件注册
<!-- mappers将sql映射注册到全局配置文件中
mapper注册一个sql映射
1、注册配置文件
resource引用类路径下文件
url 引用网络上或磁盘路径下文件
2、注册mapper接口
class 有映射文件,接口和映射文件必须同名,而且放在同一个路径里
如果没有映射文件,sql语句使用注解的方式,就需要注册接口了
3、 package批量注册
使用批量注册, 接口和映射文件必须同名,而且放在同一个路径里
-->
<mappers>
<!-- <mapper resource="UserMapper.xml"></mapper> -->
<!-- <mapper url=""/>-->
<!--<mapper class="cn.it.demo.dao.UserDao" /> -->
<package name="cn.it.demo.dao"/>
</mappers>