您的位置:首页 > 其它

mybatis的一些相关配置

2017-09-24 15:08 134 查看
1、在mybatis的配置文件SlqMapConfig.xml文件中配置延迟加载一级开启二级缓存:

<settings>
<!-- 打开延迟加载的开关 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 将积极加载改为消极加载,消极加载就是按需加载 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 开启二级缓存 -->
<setting name="cacheEnabled" value="true"/>
</settings>

2、在mybatis的配置文件SlqMapConfig.xml中配置别名

<typeAliases>
<!-- 针对单个别名的定义 type:类型的路径 alias:别名 <typeAlias type="xb.cn.mybatis.po.User" 
alias="user" /> -->
<!-- 批量别名的配置 指定包名,mybatis会自动的扫描PO类,自动的来定义别名,别名就是这个类名(首字母大写或小写都可以) -->
<package name="xb.cn.mybatis.po" />
</typeAliases>

3、在mybatis的配置文件SlqMapConfig.xml中配置所需要的映射文件机mapper.xml文件

<!-- 加载配置文件 -->
<mappers>
<!-- 这是通过resource方法加载映射文件 <mapper resource="sqlmap/UserMapper.xml" /> -->
<!--<mapper resource="mapper/UserMapper.xml" /> -->
<!-- 还可以通过接口加载映射文件 遵循规范:需要将mapper接口的类名与mapper.xml映射文件的名称保持一致,且在一个目录。 上面规范的前提是,使用mapper代理的方法 -->
<!--<mapper class="xb.cn.mybatis.mapper.UserMapper"/> -->
<!-- 批量的加载mapper ,同样的指定mapper接口的包名,mybatis自动扫描包下的所有mapper接口进行加载 遵循规范:需要将mapper接口的类名与mapper.xml映射文件的名称保持一致,且在一个目录。 
上面规范的前提是,使用mapper代理的方法 -->
<package name="xb.cn.mybatis.mapper" />
</mappers>

4、在mybatis的配置文件SlqMapConfig.xml中配置JDBC的事务管理。

4.1、<!-- 加载db.properties配置文件 -->
<properties resource="db.properties" /> 

4.2、db.properties文件中配写数据库的四项基本操作。

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&&characterEncoding=UTF8

jdbc.user=root

jdbc.password=123456

4.3、配置相应的数据库的基本四项。

<environments default="development">

<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClass}" />
<property name="url" value="${jdbc.jdbcUrl}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>

注意在sqlMapConfig.xml文件中开启了二级缓存,但是还得在你需要的mapper.xml文件中再开启二级缓存。

<!-- 开启本mapper的namespace下的二级缓存 -->
<cache />

在开启了二级缓存后还得在相应的pojo类实现序列化

public class User implements Serializable{}:实现序列化的目的是为了将缓存数据取出执行反序列化操作,因为二级缓存数据存储介质多种多样,不一定在内存中。

对于一级缓存,mybatis默认开启一级缓存,不需要再去开启。一级缓存是在sqlsession范围中,而二级缓存是在namespace的范围中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: