模擬mybatis-plus wrapper
package com.giant.financial.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Title:
* Description: sql Wrapper
* Company: gainet <br>
* @author LiMingJun <br>
* @version v1.0 <br>
* @date 2019/1/8 09:19<br>
*/
public class GainetSqlWrapper {
protected String db = null;
private final String SYMBOL_EQ = "=";
private final String SYMBOL_GT = ">";
private final String SYMBOL_GE = ">=";
private final String SYMBOL_LT = "<";
private final String SYMBOL_LE = "<=";
private final String SYMBOL_NOTNULL = "is not null";
private final String SYMBOL_LIKE = "like";
private StringBuffer sqlSelect = null;
private SimpleDateFormat sfmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public GainetSqlWrapper() {
this.sqlSelect = new StringBuffer();
}
public GainetSqlWrapper(String bdName) {
this.db = bdName;
if(null == sqlSelect) sqlSelect = new StringBuffer("select * from "+ db +" where 1=1 ");
}
public String sql(){
return sqlSelect.toString();
}
/**
* 等於
* @param column
* @param params
* @return
*/
public GainetSqlWrapper eq(String column, Object params) {
return this.where(column, params, this.SYMBOL_EQ);
}
/**
* 字段相同匹配
* @param column1
* @param column2
* @return
*/
public GainetSqlWrapper ceq(String column1, Object column2) {
sqlSelect.append("and "+ column1 +" = "+ column2 +" ");
return this;
}
/**
* 大於
* @param column
* @param params
* @return
*/
public GainetSqlWrapper gt(String column, Object params) {
return this.where(column, params, this.SYMBOL_GT);
}
/**
* 大於等於
* @param column
* @param params
* @return
*/
public GainetSqlWrapper ge(String column, Object params) {
return this.where(column, params, this.SYMBOL_GE);
}
/**
* 小於
* @param column
* @param params
* @return
*/
public GainetSqlWrapper lt(String column, Object params) {
return this.where(column, params, this.SYMBOL_LT);
}
/**
* 小於等於
* @param column
* @param params
* @return
*/
public GainetSqlWrapper le(String column, Object params) {
return this.where(column, params, this.SYMBOL_LE);
}
/**
* 小於等於
* @param column
* @param params
* @return
*/
public GainetSqlWrapper notNull(String column, Object params) {
return this.where(column, params, this.SYMBOL_NOTNULL);
}
/**
* like
* @param column
* @param params
* @return
*/
public GainetSqlWrapper like(String column, Object params) {
return this.where(column, params, this.SYMBOL_LIKE);
}
/**
* group
* @param column
* @return
*/
public GainetSqlWrapper groupBy(String column) {
sqlSelect.append("group by "+ column +" ");
return this;
}
/**
* order by asc
* @param column
* @return
*/
public GainetSqlWrapper orderByAsc(String column) {
sqlSelect.append("order by "+ column +" ASC ");
return this;
}
/**
* order by desc
* @param column
* @return
*/
public GainetSqlWrapper orderByDesc(String column) {
sqlSelect.append("order by rand() ");
// sqlSelect.append("order by "+ column +" DESC ");
return this;
}
/**
* order by desc
* @param s e
* @return
*/
public GainetSqlWrapper limit(int s, int e) {
sqlSelect.append("limit "+ s +", "+e);
return this;
}
/**
* 組裝sql
* @param column
* @param params
* @param Symbol
* @return
*/
public GainetSqlWrapper where(String column, Object params,String Symbol){
if(column.equals(params.toString())){
sqlSelect.append("and "+ column +" "+ Symbol +" "+ params +" ");
} else if(params.toString().equals("null")){
sqlSelect.append("and "+ column +" "+ Symbol +" ");
} else {
if(params instanceof Integer){
sqlSelect.append("and "+ column +" "+ Symbol +" "+ params +" ");
}
if(params instanceof String){
sqlSelect.append("and "+ column +" "+ Symbol +" '"+ params +"' ");
}
if(params instanceof Date){
sqlSelect.append("and "+ column +" "+ Symbol +" '"+ sfmt.format(params) +"' ");
}
}
return this;
}
}