深入浅出Mybatis(五)SqlMapConfig.xml详解

1.properties属性配置

<properties resource="jdbc.properties">
        <!--<property name="" value=""/>-->
</properties>

可以引用外部的如jdbc.properties文件中的属性,也可以自己定义name和value,

properties特性:

注意:

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

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

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

最后读取parameterType传递的属性值,只将属性值定义在properties文件中。

在properties文件中定义属性要有一定的特殊性,如xxx.xxx

2.settings全局参数配置

mybatis框架运行时的一些参数

3.typeAlias(别名)

在mapper.xml中输入参数的类型和输出参数的类型如果是自己定义的pojo类型时,输入的字符会很长,这时就需要我们定义自己的别名让输入输出类型的字符串长度变短。

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

4.typeHandler类型处理器

myabtis中通过typeHandler完成jdbc类型和java类型的转换。

一般情况下,mybatis默认支持的类型就已经够用了

5.映射配置mapper。

加载mapper文件。

单个加载有两种方式。批量加载有一种。

<mappers>
        <!-- resource加载单个的mapper文件 -->
        <mapper resource="sqlmap/userMapper.xml"/>
        <mapper resource="mapper/userMapper.xml"/>
        <!-- 通过mapper接口加载
            遵循一些规范:需要将mapper接口和mapper的映射文件放在同一个目录中且同名,
            前提:使用mapper代理方式
         -->
        <mapper class="com.beyond.mybatis.mapper.UserMapper" />
        <!-- 批量加载mapper
            指定mapper接口的包名,mybatis会自动扫描包下的所有mapper接口进行加载
            遵循一些规范:需要将mapper接口和mapper的映射文件放在同一个目录中且同名,
            前提:使用mapper代理方式
         -->
        <package name="com.beyond.mybatis.mapper"/>

</mappers>

在使用批量加载或是class加载的时候可能会出现异常(如果是maven工程的话)

 Invalid bound statement (not found): com.beyond.mybatis.mapper.UserMapper.selectUser

需要在pom.xml中加入以下配置

<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>




猜你喜欢

转载自blog.csdn.net/qq_21963133/article/details/79735257