栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis实现分页、排序、条件查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis实现分页、排序、条件查询

文章目录
            • 1、前端样式
            • 2、定义返回结果集
            • 3、MyBatis逆向工程
            • 4、业务代码
            • 5、Log4j的SQL

1、前端样式

2、定义返回结果集
import java.util.List;

public class ListResult {
    
    private String msg;
    
    private Integer status;
    
    private Integer total;
    
    private List data;
    
    public String getXxx() {...}

    public void setXxx(...) {...}
}
3、MyBatis逆向工程

生成JavaBean、mapper接口、mapper配置文件

过程:略

4、业务代码

Controller层(视图层、控制层)

@GetMapping(value = "/managers")
public ListResult mgrShow(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 ListResult findAllByPageInfo(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;
}
5、Log4j的SQL

当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(总条数)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号