package com.hx.mybatisTool; import com.hx.exception.TipsException; import com.hx.util.SimpleTool; import com.hx.util.StringUtils; import java.util.Map; /** * mybatis 自定义处理sql语句 * @author chenjiahe * @Data: 2020-06-08 */ public class SqlSentence { /**执行语句*/ private String sqlSentence; /**新增存在查询判断*/ private String whereExist; private Map m; /**排序*/ private String orderBy; /**开始页数*/ private Integer startPage = 0; /**每页数量*/ private Integer pageNum = 0; /**条数(当前类使用)*/ private Integer pageSize; ////////////////////////////////////////////////////////////// /********************mother****************************/ public SqlSentence() { } public SqlSentence(Class c, String where, Map values) { if(StringUtils.isEmpty(where)) { throw new TipsException("sql is null"); } if(values == null) { throw new TipsException("values is null"); } sqlSentence = "select * from " + c.getSimpleName()+ " where " + where; m = values; } public SqlSentence(String where, Map values) { if(StringUtils.isEmpty(where)) { throw new TipsException("sql is null"); } if(values == null) { throw new TipsException("values is null"); } sqlSentence = where; m = values; } /** * sql整条语句 * @param sql 如:select * from user Where name = #{m.userName} order by age desc * @param values 存放的值如:values.put("userName","ChenJiaHe") */ public void sqlSentence(String sql,Map values) { if(StringUtils.isEmpty(sql)) { throw new TipsException("sql is null"); } if(values == null) { throw new TipsException("values is null"); } sqlSentence = sql; m = values; } /** * sql整条语句-分页 * @param sql 如:select * from user Where name = #{m.userName} order by age desc * @param values 存放的值如:values.put("userName","ChenJiaHe") * @param pageNum 当前页数 * @param pageSize 当前条数 */ public void sqlSentencePage(String sql,Map values,int pageNum,int pageSize) { if(StringUtils.isEmpty(sql)) { throw new TipsException("sql is null"); } if(values == null) { throw new TipsException("values is null"); } if(pageNum < 1){ pageNum = 1; } if(pageSize < 1){ pageSize = 1; } this.pageNum = pageNum; this.pageSize = pageSize; //算起点 int pageStart = (pageNum-1)*pageSize; sql = sql+" LIMIT "+pageStart+","+pageSize; sqlSentence = sql; m = values; } /**分页组装信息 * @param data 装载信息 * @param totalNum 总页数 * @return 装载信息 */ public Map pageAssembleData(Map data,int totalNum){ data.put("pageNum",pageNum); data.put("pageSize",pageSize); data.put("total",totalNum); int pages; if(pageSize > 0){ if(totalNum%pageSize > 0){ pages = totalNum/pageSize+1; }else{ pages = totalNum/pageSize; } }else{ pages = 0; } data.put("pages",pages); if(pages <= pageNum){ data.put("isLastPage",true); }else{ data.put("isLastPage",false); } return data; } /** * 查询的语句 * @param sql 如:id = #{m.userId} order by age DESC * @param values 存放的值如:values.put("userId","123456") */ public void sqlWhere(String sql,Map values) { if(!SimpleTool.checkNotNull(values)){ throw new TipsException("values is null"); } if(!SimpleTool.checkNotNull(sql)) { sql = "1=1"; } sqlSentence = sql; m = values; } /** * 更新语句的语句 * @param sql 如:name = #{m.name},age = ? WHERE id = #{m.id} * @param values 存放的值 */ public void sqlUpdate(String sql,Map values) { if(!SimpleTool.checkNotNull(values)){ throw new TipsException("values is null"); } m = values; sqlSentence = sql; } /************************************************************************/ public Map getM() { return m; } public void setM(Map m) { this.m = m; } public String getSqlSentence() { return sqlSentence; } public void setSqlSentence(String sqlSentence) { this.sqlSentence = sqlSentence; } public String getOrderBy() { return orderBy; } public void setOrderBy(String orderBy) { this.orderBy = orderBy; } public Integer getStartPage() { return startPage; } public void setStartPage(Integer startPage) { this.startPage = startPage; } public Integer getPageNum() { return pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public Integer getStartIndex() { return (startPage - 1) * pageNum; } public String getWhereExist() { return whereExist; } public void setWhereExist(String whereExist) { if(StringUtils.isNull(whereExist)){ whereExist = null; } this.whereExist = whereExist; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } }