mybatis的映射文件

映射文件

1.1输入映射

1.1.1简单类型
参考入门程序之根据用户ID查询用户信息的映射文件

1.1.2Pojo类型
参考入门程序之添加用户的映射文件

1.1.3包装pojo类型
1.1.3.1需求
综合查询时,可能会根据用户信息、商品信息、订单信息等作为条件进行查询,用户信息中的查询条件由:用户的名称和性别进行查询

1.1.3.2创建包装pojo
这里写图片描述

1.1.3.3映射文件
这里写图片描述
1.1.3.4Mapper接口
这里写图片描述
1.1.3.5测试代码
这里写图片描述
1.1.4Map
同传递POJO对象一样,map的key相当于pojo的属性。

1.1.4.1映射文件

<!-- 传递hashmap综合查询用户信息 -->
    <select id="findUserByHashmap" parameterType="hashmap" resultType="user">
       select * from user where id=#{id} and username like '%${username}%'
    </select>

上边红色标注的是hashmap的key。

1.1.4.2测试代码

Public void testFindUserByHashmap()throws Exception{
        //获取session
        SqlSession session = sqlSessionFactory.openSession();
        //获限mapper接口实例
        UserMapper userMapper = session.getMapper(UserMapper.class);
        //构造查询条件Hashmap对象
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("id", 1);
        map.put("username", "管理员");

        //传递Hashmap对象查询用户列表
        List<User>list = userMapper.findUserByHashmap(map);
        //关闭session
        session.close();
    }

异常测试:
传递的map中的key和sql中解析的key不一致。
测试结果没有报错,只是通过key获取值为空。

1.2输出映射

1.2.1resultType

1.2.1.1使用要求
使用resultType进行结果映射时,需要查询出的列名和映射的对象的属性名一致,才能映射成功。

如果查询的列名和对象的属性名全部不一致,那么映射的对象为空。
如果查询的列名和对象的属性名有一个一致,那么映射的对象不为空,但是只有映射正确那一个属性才有值。

如果查询的sql的列名有别名,那么这个别名就是和属性映射的列名。

1.2.1.2简单类型
注意,对简单类型的结果映射也是有要求的,查询的列必须是一列,才能映射为简单类型。

1.2.1.2.1需求
综合查询时,需要根据综合查询的添加查询用户的总数

1.2.1.2.2映射文件
这里写图片描述
1.2.1.2.3Mapper接口
这里写图片描述
1.2.1.2.4测试代码
这里写图片描述
1.2.1.3Pojo对象和pojo列表
参考入门程序之根据用户ID查询用户信息和根据用户名称模糊查询用户列表

1.2.2resultMap
1.2.2resultMap
1.2.2resultMap

1.2.2.1使用要求
使用resultMap进行结果映射时,不需要查询的列名和映射的属性名必须一致。但是需要声明一个resultMap,来对列名和属性名进行映射。

1.2.2.2需求
对以下sql查询的结果集进行对象映射
Select id id_,username username_,sex sex_ from user where id = 1;

1.2.2.3映射文件
这里写图片描述
1.2.2.4Mapper接口
这里写图片描述
1.2.2.5测试代码
这里写图片描述
1.2.3动态sql
在mybatis中,它提供了一些动态sql标签,可以让程序员更快的进行mybatis的开发,这些动态sql可以通过sql的可重用性。。
常用的动态sql标签:if标签、where标签、sql片段、foreach标签

1.2.3.1If标签/where标签
1.2.3.1.1需求
综合查询时,查询条件由用户来输入,用户名称可以为空,需要满足这种情况下的sql编写。

1.2.3.1.2映射文件
这里写图片描述
1.2.3.1.3测试代码
这里写图片描述
这里写图片描述
1.2.3.2Sql片段
Sql片段可以让代码有更高的可重用性

Sql片段需要先定义后使用
这里写图片描述
1.2.3.3Foreach标签
可以循环传入参数值

1.2.3.3.1需求
综合查询时,会根据用户ID集合进行查询

SELECT * FROM USER WHERE id IN (1,2,10)

1.2.3.3.2修改包装pojo
这里写图片描述
1.2.3.3.3映射文件
这里写图片描述
1.2.3.3.4测试代码
这里写图片描述
这里写图片描述

over~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值