1.快速开始
2.代码生成器
3.CRUD接口——Service CRUD接口
4.CRUD接口——Mapper CRUD接口
5.条件构造器
6.分页插件
7.Sequence主键
8.自定义ID生成器
9.逻辑删除
10.乐观锁插件
11.自动填充
// 插入一条记录
int insert(T entity);
服务层插入代码:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
public void insert() {
User user = new User();
user.setId(5L);
user.setAge(25);
user.setName("hk4");
user.setEmail("[email protected]");
baseMapper.insert(user);
}
}
控制层调用代码:
@Autowired
UserServiceImpl userServiceImpl;
@RequestMapping("/insert")
public void insert() {
userServiceImpl.insert();
}
}
开启服务器,访问http://localhost:8080/hk/insert
数据库数据如下:
上一篇讲Service层的CRUD接口其实是继承的IService中的方法,而Mapper层的CRUD接口继承的是BaseMapper中的方法
//1 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
//2 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
//3 根据 ID 删除
int deleteById(Serializable id);
//4 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
说一下3
服务层删除代码:
public void delete() {
baseMapper.deleteById(1L);
}
控制层调用代码:
@RequestMapping("/delete")
public void delete() {
userServiceImpl.delete();
}
开启服务器,访问http://localhost:8080/hk/delete
数据库表数据如下所示:
//1 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
//2 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
原数据库数据如下:
public void update1() {
User user = new User();
user.setId(5L);
user.setAge(25);
user.setName("hk444444");
user.setEmail("[email protected]");
baseMapper.updateById(user);
}
控制层调用代码:
@RequestMapping("/update1")
public void update1() {
userServiceImpl.update1();
}
开启服务器,访问http://localhost:8080/hk/update1
数据库表数据如下:
//1 根据 ID 查询
T selectById(Serializable id);
//2 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
//3 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
//4 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
//5 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
//6 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
//7 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
//8 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
//9 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
//10 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
服务层查询代码:
public void select1() {
System.out.println(baseMapper.selectById(5));
}
控制层调用代码:
@RequestMapping("/select1")
public void select1() {
userServiceImpl.select1();
}
开启服务器,访问http://localhost:8080/hk/select1
查询结果如下: