com.baomidou
mybatis-plus-boot-starter
3.4.1
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String address;
private String username;
private String password;
}
@Mapper
@Component
public interface UserMapper extends BaseMapper {
}
继承BaseMapper
接口:
public interface UserService extends IService {
}
实现类:
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
}
service接口继承IService
实现类继承ServiceImpl<参数1, 参数2>:参数1为对应的Mapper文件,参数2为操作的表实体类
此时的UserService已经具有了很多操作数据的方法
@Autowired
UserService userService;
@GetMapping("/dynamic_table")
public String dynamic_table(@RequestParam(value = "pn",defaultValue = "1")Integer pn, Model model){
//查询所有数据
// List list = userService.list();
//model.addAttribute("users",list);
//分页查询数据
Page userPage = new Page(pn, 3);//pn是当前页码,5为每页显示的数据条数
Page page = userService.page(userPage, null);//分页查询的结果
model.addAttribute("page",page);
return "table/dynamic_table";
}
pn参数为当前页码,如果当前页码为空,就默认为1
@Configuration
public class MyBatisConfig {
@Bean
public MybatisPlusInterceptor paginationInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
//分页拦截器
PaginationInnerInterceptor paginationInnerInterceptor=new PaginationInnerInterceptor();
paginationInnerInterceptor.setOverflow(true);//到最后一页时,自动跳转到第一页 到第一页时,不会再向前
paginationInnerInterceptor.setMaxLimit(5L);//每页最多为5条
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
return mybatisPlusInterceptor;
}
}
当前第 [[${page.current}]] 页
总计 [[${page.pages}]] 页 共 [[${page.total}]] 条记录
查询的当前页的用户,在Page.records里面
分页接口:
@RestController
public class RkController {
@Autowired
private RkMapper rkMapper;
/**
* 测试分页查询
* @return
*/
@RequestMapping("/page")
public R
Mapper:
/**
* @author :Rk.
* @date : 2022/10/10
*/
@Mapper
public interface RkMapper extends BaseMapper {
/**
* 分页查询 可以自定义查询条件,结果会封装到 IPage中
* 返回值类型就写Dish 只需要在乎你查询的当前页的数据,其他的会自动补全
* @param page
* @param name 查询条件,菜品名称
* @return
*/
IPage findPagerk(@Param("page")IPage page, @Param("name")String name);
}
测试:
执行了两个sql,并且两个page对象是相等的: