@TestpublicvoidtestInsert(){User user =newUser();
user.setName("张三");
user.setAge(18);
user.setEmail("123@gmail.com");int result = userMapper.insert(user);System.out.println("result"+result);System.out.println("id"+user.getId());}
2.2 删
根据条件删除使用 Map类型
publicvoidtestDelete(){// 根据id删除 DELETE FROM user WHERE id=?int result = userMapper.deleteById(1778611896094601218L);System.out.println("result"+ result);// 根据条件删除 DELETE FROM user WHERE name = ? AND age = ?Map<String,Object> map =newHashMap<>();
map.put("name","张三");
map.put("age",18);int result = userMapper.deleteByMap(map);System.out.println("result"+ result);// 批量删除 DELETE FROM user WHERE id IN ( ? , ? , ? )List<Long> list =Arrays.asList(4L,5L,6L);int result = userMapper.deleteBatchIds(list);System.out.println("result"+ result);}
2.3 改
@Test// update UPDATE user SET name=?, age=? WHERE id=?publicvoidtestUpdate(){User user =newUser();
user.setId(4L);
user.setName("李四");
user.setAge(44);int result = userMapper.updateById(user);System.out.println("result"+ result);}
2.4 查
批量查询使用map
@TestpublicvoidtestSelect(){// 根据id查询 SELECT id,name,age,email FROM user WHERE id=?User user = userMapper.selectById(1L);System.out.println(user);// 批量查询 SELECT id,name,age,email FROM user WHERE id IN ( ? , ? , ? )List<Long> list =Arrays.asList(1L,2L,3L);
userMapper.selectBatchIds(list);System.out.println(list);// 条件查询 SELECT id,name,age,email FROM user WHERE name = ? AND age = ?Map<String,Object> map =newHashMap<>();
map.put("name","Laura");
map.put("age",26);List<User> users = userMapper.selectByMap(map);System.out.println(users);// 自定义查询 select id,name,age,email from user where id = ?Map<String,Object> map =userMapper.SelectById(1L);System.out.println(map);}
@Test// 批量添加publicvoidtestInsert(){List<User> list =newArrayList<>();for(int i=1;i<=5;i++){User user =newUser();
user.setName("ybc"+i);
user.setAge(20+i);
list.add(user);}boolean b = userService.saveBatch(list);System.out.println(b);}
4、常用注解
4.1 @TableName
// 如果实体类与数据库中的表名不一致,指定数据库中的表名@TableName("user")
也可以通过配置全局配置文件,指定去什么表中查询
配置前缀t_,即默认在t_开头的表中去查询
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 设置MyBatis-Plus的全局配置global-config:db-config:# 设置实体类所对应的表的统一前缀table-prefix: t_
# 设置统一的主键生成策略id-type: auto
@Testpublicvoidtest01(){// 查询username中包含a的,年龄在20-30岁之间的,email不为空的// SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0// AND (user_name LIKE ? AND age BETWEEN ? AND ? AND email IS NOT NULL)QueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.like("user_name","a").between("age",20,30).isNotNull("email");List<User> list = userMapper.selectList(queryWrapper);System.out.println(list);}@Testpublicvoidtest02(){// 查询用户信息,按照年龄上的降序,若年龄相同,则按照id的升序// SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user// WHERE is_deleted=0 ORDER BY age DESC,uid ASCQueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.orderByDesc("age").orderByAsc("uid");List<User> list = userMapper.selectList(queryWrapper);System.out.println(list);}@Testpublicvoidtest03(){// 删除email为空的用户记录// UPDATE t_user SET is_deleted=1 WHERE is_deleted=0 AND (email IS NULL)// 因此此处使用了逻辑删除 delete->updateQueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.isNull("email");int delete = userMapper.delete(queryWrapper);System.out.println("delete:"+delete);}@Testpublicvoidtest04(){// 将年龄大于20并且用户名中包含a或邮箱为null的用户信息修改QueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.gt("age",20).like("user_name","a").or().isNull("email");User user =newUser();
user.setName("panjie");
user.setEmail("123@qq.com");int update = userMapper.update(user, queryWrapper);System.out.println("update:"+update);}@Testpublicvoidtest05(){// 将用户名中包含a并且(年龄大于20或邮箱为null())的用户信息修改// 优先 年龄大于20或邮箱为null()// lambda中的条件表达式优先执行QueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.like("user_name","a").and(i->i.gt("age",20).or().isNull("email"));User user =newUser();
user.setName("panjie");
user.setEmail("123@qq.com");int update = userMapper.update(user,queryWrapper);System.out.println(update);}@Testpublicvoidtest06(){// 查询指定的字段名QueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.select("user_name","age","email");List<Map<String,Object>> maps = userMapper.selectMaps(queryWrapper);System.out.println(maps);}@Testpublicvoidtest07(){// 查询id小于5的用户信息QueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.inSql("uid","select uid from t_user where uid <=10");List<User> users = userMapper.selectList(queryWrapper);System.out.println(users);}
<mappernamespace="com.melon.mp.mapper.UserMapper"><selectid="SelectById"resultType="map">
select id,name,age,email from user where id = #{id}
</select><!-- Page<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age); --><selectid="selectPageVo"resultType="User">
select uid,user_name,age,email from t_user where age >= #{age}
</select></mapper>