mybatis系列-06-输入映射
2016-05-26 19:56
274 查看
通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、pojo的包装类型
6.1 传递pojo的包装对象
6.1.1 需求
完成用户信息的综合查询,需要传入查询条件很复杂(可能包括用户信息、其它信息,比如商品、订单的)
6.1.2 定义包装类型pojo
针对上边需求,建议使用自定义的包装类型的pojo。
在包装类型的pojo中将复杂的查询条件包装进去。
public class UserQueryVo { //传入多个id private List<Integer> ids; //在这里包装所需要的查询条件 //用户查询条件 private User userCustom;
6.1.3 mapper.xml
在UserMapper.xml中定义用户信息综合查询(查询条件复杂,通过高级查询进行复杂关联查询)。
<!-- 用户信息综合查询 #{userCustom.sex}:取出pojo包装对象中性别值 ${userCustom.username}:取出pojo包装对象中用户名称 --> <select id="findUserList" parameterType="UserQueryVo" resultType="User"> SELECT * FROM USER WHERE sex = #{userCustom.sex} AND username LIKE '%${userCustom.username}%' </select>
6.1.4 mapper.java
public List<User> findUserList(UserQueryVo userQueryVo);
6.1.5 测试代码
@Test public void testFindUserCount(){ SqlSession sqlSession = sqlSessionFactory.openSession(); //创建UserMapper对象,mybatis自动生成mapper代理对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //创建包装对象,设置查询条件 UserQueryVo userQueryVo = new UserQueryVo(); User user = new User(); user.setId(24); user.setSex("1"); user.setUsername("张"); userQueryVo.setUserCustom(user); //调用userMapper的方法 List<User> list = userMapper.findUserList(userQueryVo); System.out.println(list.size()); }
相关文章推荐
- 关于mac的硬件时间获取
- 第二阶段站立会议04
- mysql的存储引擎如何选择
- PAT 1009 Product of Polynomials
- Excel 导入到Datatable 中,再使用常规方法写入数据库
- js 去掉字符串前后空格
- [Java]工厂模式
- malloc函数详解
- 如何用OpenCV训练自己的分类器
- 实习入职第六天:Android里面的src和background的区别是什么样子的
- 多线程同步几个例子(买票程序的synchronized)
- ASP.NET基本对象的认识
- Android实战--电话拨号器
- Octave 线性代数 矩阵的秩和线性方程组 齐次方程组
- c++作业6
- linux 软件安装问题
- linux下输出查看进程及杀进程
- 枚举(三)用枚举实现接口的用法
- Android自定义日期选择框
- 客户端连接linux经常间隔性断开链接【转】