MyBatis学习系列(四)--------SqlMapConfig.xml配置文件详解

前言

    在MtBatis中,有一个核心的配置文件SqlMapConfig.xml,当然,这个文件名可以自定义,我们来对配置文件中的各个标签和属性详细了解一下.

正文

●配置内容:

首先,sqlmapconfig.xml文件中的所有配置的内容必须按照以下的先后顺序来进行配置:

  1. properties(属性)
  2. settings(全局配置参数)
  3. typeAliases(类型别名)
  4. typehandlers(类型处理器)
  5. objectFactory(对象工厂)
  6. plugins(插件)
  7. environments(环境集合属性对象)
      environment(环境子属性对象)
         transactionManager(事务管理)
         dataSource(数据源)
  8. mapper(映射器)
●properties(属性)

SqlMapConfig.xml可以引用java属性文件中的配置信息:
在classpath中定义属性文件db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/jdbc?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

如上定义以后,就可以在SqlMapConfig.xml中引用:

<properties resource="db.properties"/>
    <environments default="development">
        <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.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
</properties>

需要注意的是,mybatis将按照以下的顺序来加载属性:
1. 在properties元素体内定义的属性首先被读取.
2. 接着会读取properties标签内resource或者url加载的属性,而且它会覆盖已经读取的同名属性.

●typeAliases(类型别名)
  1. MyBatis默认支持的别名有以下几种:
    这里写图片描述

  2. 自定义别名
    要自定义别名,就要在SqlMapConfig.xml文件中配置:

<typeAliases>
    <!-- 单个别名定义 -->
    <typeAlias alias="user" type="com.mybatis.po.User"/>
    <!-- 批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) -->
    <package name="com.mybatis.po"/>
    <package name="其它包"/>
</typeAliases>
●mapper(映射器)

配置这个属性来加载mapper映射文件

  • <mapper resource="sqlmap/User.xml" />代表相对于类路径的资源
  • <mapper class="com.mybatis.mapper.UserMapper"/>配置mapper接口的类路径,这种配置的方法要求mapper接口名称和mapper映射文件名称相同,且放在一个目录中.
  • <package name="com.mybatis.mapper"/>注册指定的包下面的所有接口,这种配置的方法要求mapper接口名称和mapper映射文件名称相同,且放在一个目录中.这种方式适合多个接口的情况来一次性扫描.

总结

    了解SqlMapConfig.xml文件中的每一个配置项的意义,灵活地使用,能方便我们的开发,也能利于项目的后期维护.

猜你喜欢

转载自blog.csdn.net/xiaoyao2246/article/details/81168619