03SqlMapConfig.xml配置文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03SqlMapConfig.xml配置文件相关的知识,希望对你有一定的参考价值。

MyBatis的全局配置文件SqlMapConfig.xml,在此文件中配置加载属性文件、数据源、事务、全局参数、别名以及mapper等,其内容如下:
技术分享

1、properties

<properties>用来加载properties属性文件,jdbc.properties文件内容如下所示:
1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8&useSSL=true
3 jdbc.username=root
4 jdbc.password=root123

SqlMapConfig.xml文件加载jdbc.properties文件的方式如下所示:

1 <properties resource="jdbc.properties"></properties>

之后就可以通过${key}方式来获取值来使用。

2、<settings>配置

  MyBatis框架在运行时可以调整一些运行参数,比如:开启二级缓存、开启延迟加载,全局参数将会影响mybatis的运行行为,具体配置信息可以查看参考手册,完整的<settings>配置如下所示:
 1 <settings>
 2   <setting name="cacheEnabled" value="true"/>
 3   <setting name="lazyLoadingEnabled" value="true"/>
 4   <setting name="multipleResultSetsEnabled" value="true"/>
 5   <setting name="useColumnLabel" value="true"/>
 6   <setting name="useGeneratedKeys" value="false"/>
 7   <setting name="autoMappingBehavior" value="PARTIAL"/>
 8   <setting name="defaultExecutorType" value="SIMPLE"/>
 9   <setting name="defaultStatementTimeout" value="25"/>
10   <setting name="safeRowBoundsEnabled" value="false"/>
11   <setting name="mapUnderscoreToCamelCase" value="false"/>
12   <setting name="localCacheScope" value="SESSION"/>
13   <setting name="jdbcTypeForNull" value="OTHER"/>
14   <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
15 </settings>

3、<typeAliases>类型命名

  在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。 

3.1 MyBatis默认支持别名

MyBatis默认支持的别名如下图所示:

技术分享

3.2 自定义别名

 MyBatis不仅有默认支持的别名,还可以自定义别名。

3.2.1 单个别名定义

 

  • 定义别名:
    1 <typeAliases>
    2     <typeAlias type="com.sunny.domain.User" alias="user"/>
    3 </typeAliases>

 

  • 引用别名:可以在下面的resultType中直接引用自定义的别名
    1 <select id="findUserById" parameterType="int" resultType="user">
    2     SELECT * FROM user WHERE id=#{id}
    3 </select>

 

3.2.2 批量定义别名

  • 定义别名时需要指定包名,MyBatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以),引用方式和上面一样:
    1 <typeAliases>
    2     <package name="com.sunny.domain"/>
    3 </typeAliases>

4、<mappers>映射器

4.1 通过resource加载单个映射文件

通过resource加载映射文件的方式如下所示(mappers下可以包含多个mapper):
1 <mappers>
2     <mapper resource="com/sunny/domain/UserMapper.xml"/>
3 </mappers>

4.2 通过class加载mapper接口

通过class加载mapper接口的方式如下所示(mappers下可以包含多个mapper):

1 <mappers>
2     <mapper class="com.sunny.mapper.UserMapper"/>
3 </mappers>
通过class加载mapper接口的方式遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中。

4.3 批量加载mapper

可以通过package来批量加载mapper:
1 <mappers>
2     <package name="com.sunny.mapper"/>
3 </mappers>

批量加载mapper需要指定mapper接口的包名,MyBatis自动扫描包下边所有mapper接口进行加载,而且需要遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中。

 

以上是关于03SqlMapConfig.xml配置文件的主要内容,如果未能解决你的问题,请参考以下文章

SqlMapConfig.xml配置文件

mybatis入门基础----SqlMapConfig.xml全局配置文件解析

SqlMapConfig.xml全局配置文件解析

理解SqlMapConfig.xml文件

SqlMapConfig.xml配置文件

SqlMapConfig.xml全局配置文件解析(mybatis)