x
//用于测试public class MyBatisPlusTest {
//自动装配,下面那行的userMapper报红线不用管,不影响运行 private UserMapper userMapper;//红线解决: 在UserMapper接口的最上面添加@Repository注解 //注意: userMapper是UserMapper接口类型的,而我们的UserMapper接口继承了BaseMapper接口,所以userMapper可以直接使用BaseMapper接口里面的方法
//用于运行测试方法--以selectList查询方法为例 public void zidingyi_testSelectList(){ //selectList方法的作用是通过条件构造器查询一个List集合,若没有条件,则可以null为参数 List<User> list = userMapper.selectList(null); list.forEach(System.out::println);//forEach方法用于输出集合数据 } //运行结果:查询出数据库的数据,以集合的方式输出。注意此时我们还没有在UserMapper接口里面写任何东西
//---------------------------------------------------------------------------------------------------------
//【测试BaseMapper接口提供给我们的方法】
//测试: 插入方法 public void zidingyi_testInsert(){ //由于insert方法需要一个实体类对象,所以我们先在下面那行创建一个实体类对象 User user = new User();//User是我们写的实体类 //然后就可以为这个对象的某个属性(或者说User类的某个成员变量、或者说数据库的某个字段)赋值 user.setName("张三"); user.setAge(18); user.setEmail("张三@athuanf.com"); //把已经赋值的对象放到下面那行的insert方法 int result = userMapper.insert(user);//insert方法的返回值是受影响的行数 //上面那行执行之后,数据库的数据就会发生变化,我们顺便在下面那行输出一下受影响的行数 System.out.println("受影响的行数: "+result); //其实还可以获取一下主键是谁,做法如下 System.out.println("主键: "+user.getId());//这个主键的值会很长,原因:id在mybatis-plus中默认是采用雪花算法生成的,所以id字段是bigint类型、id成员变量是long类型
}
//测试,deleteById删除方法,根据id删除 public void zidingyi_testDelete1(){ int result = userMapper.deleteById(1631865439841837057L);//如果id值超出int的范围,那么可以在尾部添加L,表示是long类型,而不是int类型的数据 //上面那行deleteById的返回值是受影响的行数 System.out.println("受影响的行数: "+result); }
//测试,deleteByMap删除方法,根据Map集合删除,注意Map集合的数据是键值对 public void zidingyi_testDelete2(){ //由于deleteByMap方法需要一个Map集合作为参数,所以我们先创建一个Map集合 Map<String,Object> map = new HashMap<>(); map.put("name","张三");//往集合里面添加参数,注意是键值对的形式 map.put("age",23); int result = userMapper.deleteByMap(map);//会删除name为张三,并且age为23的数据,注意name和age是同时满足,也就是某条数据的name是张三且age是23,那么这条数据才会被删除 //上面那行deleteByMap的返回值是受影响的行数 System.out.println("受影响的行数: "+result); }
//测试,deleteBatchIds删除方法,根据id批量(由于是批量,所以我们要把id值写在一个list集合里面)删除 public void zidingyi_testDelete3(){ //可以先通过Arrays集合的asList方法,把id值写到集合里面,注意id值的结尾要加上L,注意集合的泛型是Long List<Long> list = Arrays.asList(1L, 2L, 3L); int result = userMapper.deleteBatchIds(list);//上面的list值,即会删除id为1,2,3的数据 //上面那行deleteByMap的返回值是受影响的行数 System.out.println("受影响的行数: "+result); }
//修改,updateById修改方法,首先需要一个实体类对象,然后在实体类对象里面指定要修改的id,然后就可对该实体类进行某些字段的重新修改,最后把实体类对象作为updateById方法的参数即可 public void zidingyi_testUpdate(){ //由于updateById方法需要一个实体类对象,所以先创建一个User类的对象,User类是我们自己写好的,User类对接的是数据库 User user = new User(); user.setId(4L);//表示等下我们要修改id为4的数据 //在下面重新修改id为4的数据 user.setName("李四"); user.setEmail("lisi@athuanf.com"); //把修改好的user对象放到updateById方法里面 int result = userMapper.updateById(user); //userMapper方法返回的是是受影响的行数 System.out.println("受影响的行数: "+result); }
//查询,selectById查询方法,根据id值,查询单个数据 public void zidingyi_testSelect1(){ //查询id为1的数据,返回值类型必须是你的实体类,例如返回类型是User类,User类是我们自己写好的,User类对接的是数据库 User result = userMapper.selectById(1L); //输出id为1的数据 System.out.println("id为1的数据是: "+result); }
//查询,selectById查询方法,根据id值,查询多个数据,由于是查询多个数据,所以所以我们要把id值写在一个list集合里面 public void zidingyi_testSelect2(){ //可以先通过Arrays集合的asList方法,把id值写到集合里面,注意id值的结尾要加上L,注意集合的泛型是Long User result = userMapper.selectById(1L); List<Long> list = Arrays.asList(1L, 2L, 3L); List<User> userList = userMapper.selectBatchIds(list);//上面的list值,即会删除id为1,2,3的数据 //输出之前用forEach方法,先对集合中的每一个数据进行循环并输出 userList.forEach(System.out::println); }
//查询,selectByMap查询方法,根据Map集合查询,注意Map集合的数据是键值对 public void zidingyi_testSelect3(){ //由于selectByMap方法需要一个Map集合作为参数,所以我们先创建一个Map集合 Map<String,Object> map_duixiang = new HashMap<>(); //把要查询的条件添加进map_duixiang对象里面,然后把map_duixiang对象作为参数写进selectByMap方法 map_duixiang.put("name","Jack"); map_duixiang.put("age",28); //上面两行表示查询的是name为Jack,并且age为28的数据,注意name和age是同时满足,也就是某条数据的name是Jack且age是28,那么这条数据才会被查询 List<User> userList = userMapper.selectByMap(map_duixiang); //上面那行的返回值是list集合 //输出之前用forEach方法,先对集合中的每一个数据进行循环并输出 userList.forEach(System.out::println); }
//查询,selectList查询方法,如果条件为null,则表示所有数据 public void zidingyi_testSelect4(){ //selectList方法的作用是通过条件构造器查询一个List集合,若没有条件,则可以null为参数 List<User> list = userMapper.selectList(null);//注意参数为null表示查询所有数据 //输出之前用forEach方法,先对集合中的每一个数据进行循环并输出 list.forEach(System.out::println); }}