Appearance
MybatisPlus之所以方便,就是因为提供了通过面向对象的方式去构建SQL语句的能力,使得我们进行开发时,一些简单的逻辑不需要去写sql就可以完成,这里封装成案例的方式,就不单独讲解了,使用简单注释也比较全面。
Service
java
public interface UserService {
//查询所有用户
List<User> findAll();
//保存用户
User saveUser(User user);
//更新用户 - 根据id
void updateUserById(User user);
//根据条件更新用户
void update(User user);
//根据条件更新用户
void update2(User user);
//根据id删除
void deleteById(Integer id);
//根据用户信息删除
void delete(User user);
//根据id集合批量删除
void deleteByIds(ArrayList<Integer> ids);
//根据id查询用户
User selectById(Integer id);
//根据id集合查询用户
List<User> selectByIds(ArrayList<Integer> ids);
//根据条件查询用户
User selectOne(User user);
//根据条件查询总记录数 如果查询所有传入空
Integer selectCount(User user);
//查询所有记录
Integer selectCountAll();
}
ServiceImpl
下面有使用到QueryWrapper和UpdateWrapper条件构造器的地方,详细API请点击MP核心操作之条件构造器查询
java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.selectList(null);
}
@Override
public User saveUser(User user) {
userMapper.insert(user);
//此时返回user会返回User自动生成的is,MyBatisPlus已经帮我们做好了相关工作
return user;
}
@Override
public void updateUserById(User user) {
userMapper.updateById(user);
}
@Override
public void update(User user) {
//构建条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
//根据用户名更新,参数1对应数据库中的字段
wrapper.eq("user_name","zhangsan");
//参数1:实体对象
userMapper.update(user, wrapper);
}
//UpdateWrapper和QueryWrapper的区别在于UpdateWrapper可以设置更新的字段,update中一个是对象一个是null
@Override
public void update2(User user) {
//构建条件
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
//更改"user_name"为"zhangsan"的age和password字段
wrapper.set("age",21).set("password","88888").eq("user_name","zhangsan");
//参数1:实体对象
userMapper.update(null, wrapper);
}
@Override
public void deleteById(Integer id) {
userMapper.deleteById(id);
}
@Override
public void delete(User user) {
QueryWrapper<User> wrapper = new QueryWrapper<>(user);
userMapper.delete(wrapper);
}
@Override
public void deleteByIds(ArrayList<Integer> ids) {
userMapper.deleteBatchIds(ids);
}
@Override
public User selectById(Integer id) {
return userMapper.selectById(id);
}
@Override
public List<User> selectByIds(ArrayList<Integer> ids) {
return userMapper.selectBatchIds(ids);
}
@Override
public User selectOne(User user) {
return userMapper.selectOne(new QueryWrapper<>(user));
}
@Override
public Integer selectCount(User user) {
return userMapper.selectCount(new QueryWrapper<>(user));
}
@Override
public Integer selectCountAll() {
return userMapper.selectCount(new QueryWrapper<>(null));
}
}