Kaynağa Gözat

添加去重查询基础方法

chenyongxing 6 yıl önce
ebeveyn
işleme
6bf92535eb

+ 1 - 0
hos-web-framework/src/main/java/com/yihu/hos/web/framework/constant/SqlConstants.java

@ -14,6 +14,7 @@ public class SqlConstants {
    public static final String FROM = " FROM ";
    public static final String WHERE = " WHERE ";
    public static final String COUNT = " COUNT(*) ";
    public static final String DISTINCT = " DISTINCT ";
    public static final String ASTERISK = "*";
    public static final String IN = " IN ";
    public static final String BETWEEN = " BETWEEN ";

+ 12 - 1
hos-web-framework/src/main/java/com/yihu/hos/web/framework/dao/SQLGeneralDAO.java

@ -24,6 +24,7 @@ import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.persistence.Table;
import java.io.IOException;
@ -821,6 +822,10 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
    public List searchPage(Class tClass,String dataType, String version, String condition, String order, Integer offset, Integer limit,boolean isStandard) throws IOException {
        return searchPage(tClass,null,dataType,version,condition,order,offset,limit,isStandard);
    }
    public List searchPage(Class tClass,List<String> fields,String dataType, String version, String condition, String order, Integer offset, Integer limit,boolean isStandard) throws IOException {
        String tableName;
        if(isStandard){
            StandardVersion standardVersion = new StandardVersion(version);
@ -878,7 +883,12 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
                sqlCreator.order(elem.substring(1), value);
            }
        }
        String sql = sqlCreator.selectData(tableName);
        String sql = "";
        if(CollectionUtils.isEmpty(fields)){
            sql = sqlCreator.selectData(tableName);
        }else{
            sql = sqlCreator.selectData(tableName,fields);
        }
        Query query = getQuery(sqlCreator, sql);
        if (limit != null) {
            query.setMaxResults(limit);
@ -889,6 +899,7 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
        return query.list();
    }
    public boolean isExistByField(Class tClass, String stdVersion,String dataType,String field, Object val) throws IOException {
        return isExistByFields(

+ 43 - 0
hos-web-framework/src/main/java/com/yihu/hos/web/framework/util/sql/SqlCreator.java

@ -146,6 +146,47 @@ public class SqlCreator {
        return sqlBuffer.toString();
    }
    public String selectData(String tabelName,List<String> fileds) {
        setTableName(tabelName);
        for(Object key : transformer.columnToProperty.keySet()){
            itemList.add(StringUtil.toString(key));
        }
        return selectData(fileds);
    }
    public String selectData(List<String> fileds) {
        StringBuilder sqlBuffer = new StringBuilder();
        sqlBuffer.append(SqlConstants.SELECT);
        int i=0;
        for (String item : fileds) {
            if(i==0){
                sqlBuffer.append(SqlConstants.DISTINCT);
                i++;
            }
            sqlBuffer.append(item + SqlConstants.COMMA);
        }
        sqlBuffer.deleteCharAt(sqlBuffer.length() - 1);
        sqlBuffer.append(SqlConstants.FROM + tableName);
        if (!CollectionUtil.isEmpty(conditionList)) {
            sqlBuffer.append(SqlConstants.WHERE);
            sqlBuffer.append("1=1" + SqlConstants.AND);
            for (String condition : conditionList) {
                sqlBuffer.append(condition + SqlConstants.AND);
            }
            sqlBuffer.delete(sqlBuffer.length() - 4, sqlBuffer.length() - 1);
        }
        if (!CollectionUtil.isEmpty(orderList)) {
            for (String order : orderList) {
                sqlBuffer.append(order);
            }
            sqlBuffer.delete(sqlBuffer.length() - 1, sqlBuffer.length());
        }
        return sqlBuffer.toString();
    }
    public String selectData(String tabelName) {
        setTableName(tabelName);
@ -182,6 +223,8 @@ public class SqlCreator {
        return sqlBuffer.toString();
    }
    public String updateDataByTableKey(String tabelName, JsonNode jsonNode) {
        setTableName(tabelName);