当前位置:首页 > mybatis从入门到精通
publicclassUserQueryVo{ }
publicvoid setUserCustom(UserCustom userCustom){ }
this.userCustom = userCustom; publicUserCustom getUserCustom(){ }
return userCustom;
publicvoid setUsername(String username){ }
this.username = username; //模糊查询username匹配条件 privateString username;
publicString getUsername(){ }
return username; //在这里包装所需要的查询条件
//用户查询条件
privateUserCustom userCustom;
2)其次,为该包装类编写mapper.xml映射文件
在UserMapper.xml中定义用户信息综合查询(查询条件复杂,通过高级查询) 3)编写mapper.java接口
//用户信息的综合查询
publicList
4)测试类进行测试
@Test
publicvoid testFindUseList()throwsException{ }
SqlSession sqlSession = sqlSessionFactory.openSession(); //创建Usermapper对象,mybatis自定生成mapper代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //创建包装对象
UserQueryVo userQueryVo =newUserQueryVo(); UserCustom userCustom =newUserCustom(); userCustom.setUid(25);
userQueryVo.setUserCustom(userCustom); userQueryVo.setUsername(\);
//调用UserDao的方法
List
6.2 输出映射 两种方式: 6.2.1 resultType
使用resultType进行输出映射时,只有查询出来的列名和pojo的属性名一致,该列才可以映射成功
如果全部不一致,则不会生成结果对象;只要有一个一致,就会创建pojo对象。
输出简单类型-----例如:用户信息的综合查询列表总数,通过查询总数和上边用户综合查询列表才可以实现分页
1)mapper.xml
2)mapper.java
// 用户信息的综合查询
// 用户信息的综合查询总数
publicint findUserCount(UserQueryVo userQueryVo)
throwsException;
publicList
throwsException;
6.2.2 resultMap
mybatis中使用resultMap完成高级结果输出映射
如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和属性名之间做一个映射 1)mapper.xml
resultMap=\>
2)mapper.java
publicUser findUserByIdResultMap(int uid)throwsException;
7、mybatis的动态sql:
mybatis核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接 7.1 需求 if标签判断
用户信息综合查询列表和用户信息查询总数这两个statement的定义使用动态sql 对查询条件进行判断,如果输入参数不为空,才进行查询条件的拼接
1)mapper.xml
2)接口代码不变
3)测试代码
7.2 需求(sql片段)
将上边实现的动态sql判断代码块抽取出来组成一个sql片段。其他的statement可以来引用这个sql片段 1)定义sql片段
共分享92篇相关文档