您的位置:首页 > 数据库

Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml

2017-01-13 01:57 801 查看
比如针对我这个项目的mybatis全局配置文件SqlMapConfig.xml做一些说明:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!-- 加载属性文件 -->
<properties resource="db.properties">
<!--properties中还可以配置一些属性名和属性值  -->
<!-- <property name="jdbc.driver" value=""/> -->
</properties>

<!-- 全局配置参数,需要时再设置 -->
<!-- <settings></settings> -->

<!-- 别名 -->
<typeAliases>
<!-- 针对单个别名定义 type:类型的路径 alias:别名  -->
<!-- <typeAlias type="com.cy.po.User" alias="user"/> -->

<!-- 批量别名定义  指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以)-->
<package name="com.cy.po"/>
</typeAliases>

<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,事务控制由mybatis-->
<transactionManager type="JDBC" />
<!-- 数据库连接池,由mybatis管理-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>

<!-- 加载 映射文件 -->
<mappers>
<!--通过resource方法一次加载一个映射文件 -->
<!-- <mapper resource="mapper/UserMapper.xml"/> -->

<!-- 通过mapper接口加载单个 映射文件
遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
上边规范的前提是:使用的是mapper代理方法
-->
<!-- <mapper class="com.cy.mapper.UserMapper"/> -->

<!-- 批量加载mapper
指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载
遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
上边规范的前提是:使用的是mapper代理方法
-->
<package name="com.cy.mapper"/>
</mappers>
</configuration>


一、properties属性:

将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。

将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其它xml可以引用该db.properties。

注意点:

MyBatis 将按照下面的顺序来加载属性:

1)在 properties 元素体内定义的属性首先被读取。

2)然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。

3)最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

建议:

  不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。

  在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

二、settings全局配置参数:

mybatis框架在运行时可以调整一些运行参数。比如:开启二级缓存、开启延迟加载。

全局参数将会影响mybatis的运行行为。

资料参见下图:





三、typeAliases别名:

在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。

mybatis默认对一些java类型(如:String/byte/long/short/double/Integer/Double/Boolean/boolean/Date/BigDecimal)定义了别名;

我们可以对一些自定义的pojo类型进行别名定义:

1)针对单个别名定义

2)批量别名定义

四、typeHandlers类型处理器:

mybatis中通过typeHandlers完成jdbc类型和java类型的转换。

通常情况下,mybatis提供的类型处理器满足日常需要,不需要自定义.

mybatis默认支持了很多类型处理器:

如:BooleanTypeHandler 、ByteTypeHandler 、BigDecimalTypeHandler 、StringTypeHandler 、DateTypeHandler 、DateOnlyTypeHandler 、TimeOnlyTypeHandler 、SqlTimestampTypeHandler 、SqlDateTypeHandler EnumTypeHandler 等等;

五、mappers映射配置:

1)通过resource加载单个映射文件

2)通过mapper接口加载单个mapper

3)批量加载mapper(推荐使用)

配置方法见上面的配置文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: