mybatis(9)--输入映射
来源:互联网 发布:简述js的事件委托 编辑:程序博客网 时间:2024/06/18 12:12
1.输入映射
通过parameterType指定输入参数类型,类型可以是简单类型,hashmap,pojo的包装类型
但是有时我们的需求传入的查询条件很复杂(可能包括用户信息,商品,订单信息等)
此时我们可以根据这个需求来自定义包装类型的pojo
在包装类型的pojo中将复杂的查询条件包装进去
package com.ddd.mybatis.pojo;/** * 一般的user是使用逆向工程代码来生成,不可变,那如果想要扩展可以使用继承 * @author Dan * */public class UserCustom extends User{ //自定义一些扩展属性}
package com.ddd.mybatis.pojo;/** * 根据特殊需求自定义的包装类 * @author Dan * */public class UserQueryVo { private UserCustom userCustom; public UserCustom getUserCustom() { return userCustom; } public void setUserCustom(UserCustom userCustom) { this.userCustom = userCustom; }}
这两个特殊需要的pojo类我们就算完成了,那么接下来就是编写sql,修改mapper.xml
首先在这个数据库中走一遍
代码实现如下:
<!-- 综合查询用户信息 --> <select id="findUserList" parameterType="com.ddd.mybatis.pojo.UserQueryVo" resultType="com.ddd.mybatis.pojo.UserCustom"> SELECT * FROM USER WHERE user.sex=#{userCustom.sex} AND user.username LIKE '%${userCustom.username}%' </select>
接下来写相应的mapper接口方法:
//综合查询用户信息 public List<UserCustom> findUserList(UserQueryVo userQueryVo);
然后测试:
@Test public void testFindUserList() { //由于之前是在UserDaoImpl中每次获取sqlSession,所以这里需要我们手动写 SqlSession sqlSession=sqlSessionFactory.openSession(); //mybatis自动生成mapper代理对象,代理对象内部调用selectOne或者selectList UserMapper userMapper=sqlSession.getMapper(UserMapper.class); //调用userMapper的方法,但这里如果不小心用一个单个user来接收,那会报错 UserQueryVo userQueryVo=new UserQueryVo(); UserCustom userCustom=new UserCustom(); userCustom.setSex("男"); userCustom.setUsername("张伟"); userQueryVo.setUserCustom(userCustom); List<UserCustom> list=userMapper.findUserList(userQueryVo); System.out.println(list); }
测试结果:
日志就不打印了…
下面这个是结果
[User [id=6, username=大张伟, sex=男, birthday=Mon Jul 17 00:00:00 CST 2017, address=广州佛山], User [id=8, username=大张伟, sex=男, birthday=Mon Jul 17 00:00:00 CST 2017, address=广州佛山], User [id=10, username=大张伟, sex=男, birthday=Mon Jul 17 00:00:00 CST 2017, address=广州佛山]]
阅读全文
0 0
- mybatis(9)--输入映射
- mybatis(4)输入映射
- Mybatis的输入映射
- mybatis之输入映射
- (六)mybatis学习之输入映射与输出映射
- Mybatis 输入映射 输出映射 高级映射
- 【Mybatis从0到1-008】MyBatis之映射文件(输入映射、输出映射)
- Mybatis 输入和输出映射
- 【Mybatis架构】输入、输出映射
- mybatis学习之输入映射
- mybatis 输入映射和输出映射
- mybatis进阶--输入映射和输出映射
- 【MyBatis】输入映射和输出映射
- Mybatis 输入映射和输出映射
- MyBatis中输入映射和输出映射
- mybatis入门基础(四)----输入映射和输出映射---(转载)
- 【Mybatis框架】输入映射-pojo包装类型
- mybatis学习笔记(6)-输入映射
- hive基本操作
- spring整合应用安全框架Shiro
- 算法系列——Binary Tree Inorder Traversal
- VIM常用编辑命令
- multipath -ll输出结果中2:0:0:15的解释
- mybatis(9)--输入映射
- css样式以及种类
- lamp下安装zabbix
- 机器学习之K-近邻算法
- 学习js正则表达式
- poj3580:SuperMemo(块状链表/Splay)
- 号码加密
- synchronized关键字修饰代码块
- Mondriaan's Dream POJ