package com.example.demo; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.demo.dao.UserMapper; import com.example.demo.entity.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest @RunWith(SpringRunner.class) public class SelectTests { @Autowired private UserMapper userMapper; /** * 根据主键来查 */ @org.junit.Test public void selectById(){ User user = userMapper.selectById(1L); System.out.println(user); } /** * 根据多个id来查询 */ @Test public void selectByIds(){ List<String> strings = Arrays.asList("1", "2"); List<User> users = userMapper.selectBatchIds(strings); users.forEach(System.out::println); } /** * 根据map来查 */ @Test public void selectByMap(){ //key对应数据库的列名,不是实体类中的属性名。 Map<String,Object> map=new HashMap<>(); map.put("name","大boss"); map.put("age","40"); List<User> users = userMapper.selectByMap(map); System.out.println(users); } /** * 查询名字中包括大并且年龄小于50 */ @Test public void selectByWrapper(){ QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); queryWrapper.like("name","大").lt("age",50); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } /** * 查询名字中包括李并且(年龄小于30或者邮箱不为空) */ @Test public void selectByWrapper2(){ QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); queryWrapper.likeRight("name","李") .and(wq->wq.lt("age",40).or() .isNotNull("email")); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } /** * limit的使用 */ @Test public void selectByWrapper3(){ QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); queryWrapper.in("age",Arrays.asList(40,15,19)).last("limit 1"); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } /** * select选择性得输出字段 */ @Test public void selectByWrapper4(){ QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); //queryWrapper.select("id","name").like("name","李").lt("age",40); //或者用下面的 queryWrapper.select(User.class,info->!info.getColumn().equals("create_time")); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } /** * 测试condition */ @Test public void selectCondition(){ String name=""; String email="x"; condition(name,email); } private void condition(String name,String email){ QueryWrapper<User> queryWrapper=new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(name),"name",name) .like(StringUtils.isNotBlank(email),"email",email); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } /** * 实体类中的信息出现在where中,比较实用 */ @Test public void selectByWrapperEntity(){ User whereUser=new User(); whereUser.setAge(32); whereUser.setName("张三"); QueryWrapper<User> queryWrapper=new QueryWrapper<>(whereUser); //上面和下面这个2选1即可 //queryWrapper.like("name","张").lt("age",50); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } @Test public void selectByWrapperAllEq(){ QueryWrapper<User> queryWrapper=new QueryWrapper<>(); Map<String,Object> params=new HashMap<String,Object>(); params.put("name","张三"); params.put("age",null); queryWrapper.allEq(params,false);//第二个参数可以去掉参数为null的情况 List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); } /** * selectMaps的应用场景,不会让你输出的实体中有些属性为null * {name=张三, id=2} */ @Test public void selectByWrapperMaps(){ QueryWrapper<User> queryWrapper=new QueryWrapper<>(); queryWrapper.select("id","name").like("name","张").lt("age",40); List<Map<String,Object>> users = userMapper.selectMaps(queryWrapper); users.forEach(System.out::println); } /** * Lambda可以防止误写 * 我们写"name"的时候可能会写成"nname",但是getName写错了编译都不会通过 */ @Test public void selectByLambda(){ LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.<User>lambdaQuery(); lambdaQueryWrapper.like(User::getName,"张").lt(User::getAge,50); List<User> users = userMapper.selectList(lambdaQueryWrapper); users.forEach(System.out::println); } /** * 自定义sql selectAll,对应UserMapper中的selectAll方法 */ @Test public void selectMy(){ LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.<User>lambdaQuery(); lambdaQueryWrapper.like(User::getName,"张").lt(User::getAge,50); List<User> users = userMapper.selectAll(lambdaQueryWrapper); users.forEach(System.out::println); } /** * 分页测试 */ @Test public void selectPage(){ QueryWrapper<User> queryWrapper=new QueryWrapper<>(); queryWrapper.gt("age",18); Page<User> page=new Page<User>(0,1); IPage<User> userPage = userMapper.selectPage(page, queryWrapper); System.out.println("总页数:"+userPage.getPages()); System.out.println("总记录数:"+userPage.getTotal()); List<User> records = userPage.getRecords(); records.forEach(System.out::println); } @Test public void updateByWrapper(){ UpdateWrapper<User> updateWrapper=new UpdateWrapper<>(); updateWrapper.eq("name","张三").eq("age",29).set("age",30); int rows = userMapper.update(null, updateWrapper); System.out.println("影响的记录数:"+rows); } }
AR测试,比较方便。
前提条件:实体类继承Model,
public class User extends Model<User>
package com.example.demo; import java.time.LocalDateTime; import com.example.demo.entity.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; /** * ${todo} * * @date: 2020/11/22 * @author: Li Bin */ @SpringBootTest @RunWith(SpringRunner.class) public class ARTest { @Test public void insert(){ User user=new User(); user.setName("阿小"); user.setAge(12); user.setCreateTime(LocalDateTime.now()); user.setEmail("axiao@baomidou.com"); //user.setId(4L); boolean insert = user.insert(); System.out.println("新增是否成功:"+insert); } @Test public void select(){ User user=new User(); user.setId(4L); User userSelect = user.selectById(user); System.out.println(userSelect); } }
----------天道酬勤----------------