- 1、前端样式
- 2、定义返回结果集
- 3、MyBatis逆向工程
- 4、业务代码
- 5、Log4j的SQL
import java.util.List; public class ListResult3、MyBatis逆向工程{ private String msg; private Integer status; private Integer total; private List data; public String getXxx() {...} public void setXxx(...) {...} }
生成JavaBean、mapper接口、mapper配置文件
过程:略
4、业务代码Controller层(视图层、控制层)
@GetMapping(value = "/managers") public ListResultmgrShow(String selKey, String selValue, Integer pagenum, Integer pagesize){ // 测试接口是否能收到数据 前端URL: http://localhost:8181/selroom/managers?selKey=name&selValue=sfasf&pagenum=1&pages System.out.println(selKey+":"+selValue+":"+pagenum+":"+pagesize); // 基于JWT的token校验 // 略 // 初始化 结果集 ListResult result = new ListResult<>(); result.setStatus(-1); // 接收 Service层的 结果集 result = managerService.findAllByPageInfo(selKey,selValue,pagenum, pagesize); result.setStatus(200); return result; }
ServiceImpl.java(业务逻辑层 的实现类)
@Override public ListResult5、Log4j的SQLfindAllByPageInfo(String selKey, String selValue, Integer pagenum, Integer pagesize) { // 初始化 结果集 ListResult result = new ListResult<>(); // SQL语句 ManagerExample example = new ManagerExample(); ManagerExample.Criteria criteria = example.createCriteria(); // 拼接动态SQL if (!"".equals(selValue)) { // 编号 精准匹配 if ("id".equals(selKey)) { criteria.andIdEqualTo(Integer.valueOf(selValue)); } // 昵称 模糊查询 if ("name".equals(selKey)) { criteria.andNameLike("%" + selValue + "%"); } // 身份 精准匹配 (待完成) // 电话 精准匹配 if ("tel".equals(selKey)) { criteria.andTelEqualTo(selValue); } // 状态 精准匹配 (功能是否上线 待定) } // 数据总条数 result.setTotal(managerMapper.countByExample(example)); // id升序 and 分页查询 example.setOrderByClause(" id asc limit " + (pagenum - 1) * pagesize + "," + pagesize); result.setData(managerMapper.selectByExample(example)); return result; }
当selValue为空时,查全部
select xxx from t_xxx order by id asc limit 0,10
非空时,条件查询
1、精准匹配
select xxx from t_xxx WHERe ( id = ? ) order by id asc limit 0,10
2、模糊查询
select xxx from t_xxx WHERe ( name like ? ) order by id asc limit 0,10
模糊查询下的 Total(总条数)



