三.九 查询全部测试
三.九.一 测试类
@Test public void findAllTest(){ List<User> userList=userService.findAll(); userList.forEach(n->log.info(n)); }
三.九.二 Mapper接口及其相关XML文件实现
UserMapper接口
List<User> findAll();
UserMapper.xml 实现
<select id="findAll" resultType="top.yueshushu.learn.pojo.User"> select * from user </select>
三.九.三 验证
三.十 根据id集合部分查询测试
三.十.一 测试类
@Test public void findByIdsTest(){ List<Integer> ids= Arrays.asList(2,4,6); List<User> userList=userService.findAllByIds(ids); userList.forEach(n->log.info(n)); }
三.十.二 Mapper接口及其相关XML文件实现
UserMapper接口
List<User> findAllByIds(@Param("ids") List<Integer> ids);
UserMapper.xml 实现
<select id="findAllByIds" resultType="top.yueshushu.learn.pojo.User"> select * from user where id in <foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} </foreach> </select>
三.十.三 验证
三.十一 查询总条数,返回单个值测试
三.十一.一 测试类
@Test public void countTest(){ Long count=userService.count(); log.info("总数目{}",count); }
三.十一.二 Mapper接口及其相关XML文件实现
UserMapper接口
Long count();
UserMapper.xml 实现
<select id="count" resultType="java.lang.Long"> select count(*) from user </select>
三.十一.三 验证
三.十二 条件动态查询测试
三.十二.一 测试类
@Test public void nameAndSexAndDescTest(){ User user=new User(); user.setName("小欢欢A"); user.setSex("女"); user.setAge(27); user.setDescription("小坏蛋"); List<User> userList=userService.findByNameSexAndDesc(user); userList.forEach(n->log.info(n)); }
三.十二.二 Mapper接口及其相关XML文件实现
UserMapper接口
List<User> findByNameSexAndDesc(@Param("user") User user);
UserMapper.xml 实现
<select id="findByNameSexAndDesc" resultType="top.yueshushu.learn.pojo.User"> select * from user where 1=1 <if test="user.name != null and user.name != ''"> and name=#{user.name} </if> <if test="user.sex != null and user.sex != ''"> and sex=#{user.sex} </if> <if test="user.age != null"> and age <#{user.age} </if> <if test="user.description != null and user.description != ''"> and description like concat('%',#{user.description},'%') </if> <if test="user.id != null"> and id=#{user.id} </if> </select>
其实就是 MyBatis的动态SQL的用法。
三.十二.三 验证
三.十三 分页查询测试
执行两次 batchAddTest() 方法,多添加几条记录。
三.十三.一 测试类
@Test public void pageTest(){ Integer pageNumber=2; Integer pageSize=3; PageInfo pageInfo=userService.pageUser(pageNumber,pageSize); log.info("总数:"+pageInfo.getTotal()); List<User> userList=pageInfo.getList(); userList.forEach(n->log.info(n)); }
三.十三.二 UserServiceImpl的实现
@Override public PageInfo pageUser(Integer pageNumber, Integer pageSize) { //开启分页 PageHelper.startPage(pageNumber,pageSize); //正常的查询 List<User> userList=userMapper.findAll(); //将结果转换成PageInfo对象。 PageInfo pageInfo=new PageInfo(userList); return pageInfo; }
调用的 findAll()方法,不需要写任何关于分页的操作。
三.十三.三 验证
分页成功。
这就是SpringBoot整合MyBatis的一些基本的用法。
本章节的代码放置在 github 上:
https://github.com/yuejianli/springboot/tree/develop/MyBatis
谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!