Mybatis学习笔记(六)——配置文件

本博客源码下载:戳我一下

Mybatis学习笔记汇总:戳我一下

一、配置文件内容

SqlMapConfig.xml中配置的内容和顺序如下:

  • properties(属性)
  • settings(全局配置参数)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境集合属性对象)

    • environment(环境子属性对象)

      • transactionManager(事务管理)

      • dataSource(数据源)

  • mappers(映射器)

二、properties(属性)

SqlMapConfig.xml可以引用java属性文件中的配置信息如下:

classpath下定义db.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql

SqlMapConfig.xml引用如下:

<properties resource="db.properties"/>
    <!--在properties这个标签中还可以配置一些属性名和属性值 -->
    <!-- <property name="" value=""/> -->
    <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>

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

1、在 properties 元素体内定义的属性首先被读取。
2、然后会读取properties元素中resourceurl加载的属性,它会覆盖已读取的同名属性。
3、最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。

三、settings(全局参数配置)

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。下表描述了设置中各项的意图、默认值等。
这里写图片描述
这里写图片描述
这里写图片描述

四、typeAliases(类型别名)

别名类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

类型别名的使用

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

五、typeHandlers(类型处理器)

类型处理器用于java类型和jdbc类型映射,如下:

<select id="findUserById" parameterType="int" resultType="user">
        select * from user where id = #{id}
</select>

mybatis自带的类型处理器基本上满足日常需求,不需要单独定义。

六、mappers(映射器)

Mapper配置的几种方法:
1、<mapper resource=" " />
使用相对于类路径的资源
如:<mapper resource="sqlmap/User.xml" />

2、<mapper url=" " />
使用完全限定路径
如:<mapper url="file:///D:\workspace_spingmvc\mybatis_01\config\sqlmap\User.xml" />

3、<mapper class=" " />
使用mapper接口类路径
如:<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。

4、<package name=""/>
注册指定包下的所有mapper接口
如:<package name="cn.itcast.mybatis.mapper"/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
代码实例

    <mappers>
        <!-- 通过resource方法一次加载一个映射文件 -->
        <mapper resource="sqlmap/User.xml"/>
        <!-- <mapper resource="mapper/UserMapper.xml"/> -->
        <!-- 通过mapper接口加载单个映射文件
            遵循一些规范:需要将mapper接口的类名和mapper.xml映射文件名保持一致
            且在一个目录中,这个的前提是使用mapper代理的方法
         -->
        <!-- <mapper class="com.jiayifan.mapper.UserMapper"/> -->
        <!-- 批量加载 
            指定mapper接口的包名,mybatis自动的扫描包下的所有mapper接口
            并加载,但是必须遵循 “通过mapper接口加载单个映射文件”的规范
        -->
        <package name="com.jiayifan.mapper"/>
    </mappers>

参考了下面的一些文章:

不知道这个文章的名字

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页