All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.jfunc.common.db.query.JdbcQueryBuilder Maven / Gradle / Ivy

The newest version!
package top.jfunc.common.db.query;

import top.jfunc.common.utils.ArrayUtil;
import java.util.*;

/**
 * 支持 ?
 * @author xiongshiyan at 2019/12/12 , contact me with email [email protected] or phone 15208384257
 */
public class JdbcQueryBuilder extends AbstractQueryBuilder{
    /**
     * 参数列表
     */
    protected List parameters;

    public JdbcQueryBuilder(){
        super();
    }

    public JdbcQueryBuilder(String select, String tableName, String alias){
        super(select, tableName, alias);
    }
    public JdbcQueryBuilder(String select, String... froms){
        super(select, froms);
    }

    @Override
    protected void addParams(Object... params) {
        if(ArrayUtil.isEmpty(params)){
            return;
        }
        if(null == parameters){
            parameters = new LinkedList<>();
        }
        parameters.addAll(Arrays.asList(params));
    }
    /**
     * 获取SQL中的参数值列表,List返回
     */
    @SuppressWarnings("unchecked")
    public List getListParameters(){
        return (List) getParameters();
    }

    /**
     * 获取SQL中的参数值列表,Array返回
     */
    public Object[] getArrayParameters(){
        List listParameters = getListParameters();
        return listParameters.toArray(new Object[listParameters.size()]);
    }


    @SuppressWarnings("unchecked")
    @Override
    public Object getParameters() {
        if(null == parameters){
            return new LinkedList<>();
        }
        return parameters;
    }

    /**
     * 处理参数,处理了 ? 参数
     * @param sql sql
     * @return sql
     */
    @Override
    public String paddingParam(String sql) {
        return SqlUtil.paddingParam(sql, getListParameters());
    }
}