mybatis入门学习(二)

一:mybatis的全局配置文件SqlMapConfig.xml(命名可以任意),配置内容如下:

    properties(属性)

    settings(全局配置参数)

    typeAliases(类型别名)

    typeHandlers(类型处理器)

    objectFactory(对象工厂)

    plugins(插件)

    environments(环境合属性对象)    

        environment(环境子属性对象)

            transactionManager(事务管理)

            dataSource(数据源)

    mappers(映射器)

1:typeAliases

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

    如果在指定类型时输入类型的全路径,不方便进行开发,可以针对parameterType或resultType指定的类型来定义一些别名,在mapper.xml中通过别名定义,方便开发

    单个别名

<typeAlias type="全路径" alias="别名"/>

    批量别名

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

2:typeHandlers(类型处理器)

    mybatis通过typehandlers完成jdbc类型和java类型的转换

    一般情况下,mybatis默认提供的类型处理器已经能够满足我们日常的需要,不需要自定义

3:mappers(映射器)

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

<mapper resource="mapper/user.xml" />

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

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

    3):批量加载

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

二:输入类型

通过paramterType指定输入参数的类型,类型可以是简单类型,HashMap,pojo包装类型

    传递pojo的包装类型(当传入的查询条件很复杂时,要自定包装类型)

包装类:

public class UserQueryVo {
    //这里可以包装所查询的条件
    //用户查询条件
    private User user;

    //可以包装其他的查询条件,订单等

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

接口:

public List<User> findUserList(UserQueryVo user);

映射文件

    <!--用户信息的综合查询-->
    <select id="findUerList" parameterType="main.test.UserQueryVo">
        select * from user where user.sex=#{user.sex} and user.username LIKE '%${user.username}'
    </select>

三:输出映射

    1):resultType

    使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功

    如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo

    只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象

    2):resultMap:mybatis中使用resultMap完成高级输出结果映射

    如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作为一个映射关系。



    

猜你喜欢

转载自blog.csdn.net/Phoenix_tgd/article/details/80027482