/* * Copyright 2008 biaoping.yin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.frameworkset.common.poolman; import com.frameworkset.common.poolman.handle.FieldRowHandler; import com.frameworkset.common.poolman.handle.NullRowHandler; import com.frameworkset.common.poolman.handle.RowHandler; import com.frameworkset.common.poolman.util.JDBCPool; import com.frameworkset.common.poolman.util.SQLManager; import com.frameworkset.util.ListInfo; import com.frameworkset.util.ValueObjectUtil; import org.apache.log4j.Logger; import org.frameworkset.persitent.util.SQLInfo; import java.sql.BatchUpdateException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; public class SQLInfoExecutor { private static Logger log = Logger.getLogger(SQLInfoExecutor.class); public static int DEFAULT_BATCHSIZE = -1; /** * 添加sql参数,由DefaultDataInfoImpl进行处理 * @param name * @param value * @param type * @throws SetSQLParamException */ public static void addSQLParam(SQLParams sqlparams,String name, Object value, String type,String dataformat) throws SetSQLParamException { // init(); sqlparams.addSQLParam( name, value, type, dataformat); } public static void init(SQLParams sqlparams,SQLInfo statement,String pretoken,String endtoken,String action) { // this.sqlparams = new SQLParams(); sqlparams.setOldsql( statement); if(action != null) { if(action.equals(SQLExecutor.ACTION_INSERT)) sqlparams.setAction(PreparedDBUtil.INSERT); else if(action.equals(SQLExecutor.ACTION_DELETE)) sqlparams.setAction(PreparedDBUtil.DELETE); else if(action.equals(SQLExecutor.ACTION_UPDATE)) sqlparams.setAction(PreparedDBUtil.UPDATE); } sqlparams.setPretoken(pretoken); sqlparams.setEndtoken(endtoken); //http://changsha.koubei.com/store/detail--storeId-b227fc4aee6e4862909ea7bf62556a7a } public static void insertBeans(String dbname, SQLInfo sql, List beans) throws SQLException { if(beans == null || beans.size() == 0) return ; execute( dbname, sql, beans,PreparedDBUtil.INSERT,(GetCUDResult)null); } public static void insertBeans(String dbname, SQLInfo sql, List beans,GetCUDResult getCUDResult) throws SQLException { if(beans == null || beans.size() == 0) return ; execute( dbname, sql, beans,PreparedDBUtil.INSERT,getCUDResult); } public static void execute(String dbname, SQLInfo sql, List beans,boolean isBatchOptimize,int action) throws SQLException { execute(dbname, sql, beans,isBatchOptimize,action,(GetCUDResult)null) ; } public static void execute(String dbname, SQLInfo sql, List beans,boolean isBatchOptimize,int action,GetCUDResult getCUDResult) throws SQLException { Connection con = null; if(beans == null || beans.size() == 0) return; try { con = DBUtil.getConection(dbname); if(beans.size() < DEFAULT_BATCHSIZE || DEFAULT_BATCHSIZE == -1){ List<SQLParams> batchsqlparams = SQLParams.convertBeansToSqlParams(beans,sql,dbname,action,con); if(batchsqlparams == null) return ; PreparedDBUtil dbutil = new PreparedDBUtil(); dbutil.setBatchOptimize(isBatchOptimize); dbutil.setPrepareDBName(dbname); dbutil.addPreparedBatch(new ListSQLParams(batchsqlparams,sql)); dbutil.executePreparedBatch(con,getCUDResult); } else//如果大于批处理size,则按批次进行批处理操作 { int start = 0; int totalsize = beans.size(); int left = totalsize - start; int end = 0; int step = 0; do{ end = left >= DEFAULT_BATCHSIZE?start + DEFAULT_BATCHSIZE:totalsize; step = left >= DEFAULT_BATCHSIZE?DEFAULT_BATCHSIZE:left; List<SQLParams> batchsqlparams = SQLParams.convertBeansToSqlParams(beans,sql,dbname,action,con,start,end,step); if(batchsqlparams == null) break ; PreparedDBUtil dbutil = new PreparedDBUtil(); dbutil.setBatchOptimize(isBatchOptimize); dbutil.setPrepareDBName(dbname); dbutil.addPreparedBatch(new ListSQLParams(batchsqlparams,sql)); dbutil.executePreparedBatch(con,getCUDResult); start = start + DEFAULT_BATCHSIZE; left = totalsize - start; }while(left > 0); } } finally { try { if (con != null) con.close(); } catch (Exception e) { // TODO: handle exception } } } private static Object CUDexecute(String dbname, SQLInfo sql, Object bean,int action) throws SQLException { return CUDexecute(dbname, sql, bean,action,false) ; } /** * 针对增删改三种类型DB操作的统一处理方法 * @param dbname * @param sql * @param bean * @param getCUDResult * @param action * @return * @throws SQLException */ private static Object CUDexecute(String dbname, SQLInfo sql, Object bean,int action,boolean getCUDResult) throws SQLException { Connection con = null; try { if(action == PreparedDBUtil.INSERT)//如果bean中使用PrimaryKey注解,并且要求自动设置主键,则要求后续所有的操作共用同一个connection来完成所有操作,以便提升系统性能 con = DBUtil.getConection(dbname); SQLParams batchsqlparams = SQLParams.convertBeanToSqlParams(bean,sql,dbname,action,con); if(batchsqlparams == null) return null; // PreparedDBUtil dbutil = new PreparedDBUtil(); // dbutil.setBatchOptimize(isBatchOptimize); // dbutil.setPrepareDBName(dbname); // dbutil.addPreparedBatch(batchsqlparams); // dbutil.executePreparedBatch(con); // action = action.toLowerCase(); SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); if(action == PreparedDBUtil.INSERT) { // if(batchsqlparams.size() > 0) { dbutil.preparedInsert(batchsqlparams, dbname,sql); return dbutil.executePrepared(con,getCUDResult); } // else // { // return dbutil.executeInsert(dbname,sql,con); // } } else if(action == PreparedDBUtil.UPDATE) { // if(batchsqlparams.size() > 0) { dbutil.preparedUpdate(batchsqlparams, dbname,sql); return dbutil.executePrepared(con,getCUDResult); } // else // { // return dbutil.executeUpdate(dbname,sql,con); // } } else if(action == PreparedDBUtil.DELETE) { // if(batchsqlparams.size() > 0) { dbutil.preparedDelete(batchsqlparams, dbname,sql); return dbutil.executePrepared(con,getCUDResult); } // else // { // return dbutil.executeDelete(dbname,sql,con); // } } else throw new SQLException("不支持的数据库操作:" + action); } finally { try { if (con != null) con.close(); } catch (Exception e) { // TODO: handle exception } } } /** * * @param dbname * @param sql * @param datas * @param batchsize * @param batchHandler * @throws SQLException */ public static <T> void executeBatch(String dbname,SQLInfo sql,List<T> datas,int batchsize, BatchHandler<T> batchHandler) throws SQLException{ if(datas == null || datas.size() == 0){ return; } StatementInfo stmtInfo = null; PreparedStatement statement = null; List resources = null; Connection con_ = null; // GetCUDResult CUDResult = null; try { con_ = DBUtil.getConection(dbname); stmtInfo = new StatementInfo(dbname, null, false, con_, false); stmtInfo.init(); JDBCPool pool = SQLManager.getInstance().getPool(dbname); boolean showsql = pool.getJDBCPoolMetadata().isShowsql(); if(showsql) { if(log.isDebugEnabled()) log.debug("Execute JDBC prepared batch statement:"+sql.getSql()); } statement = stmtInfo .prepareStatement(sql.getSql()); if(batchsize <= 1 ){//如果batchsize被设置为0或者1直接一次性批处理所有记录 for(int i = 0;i < datas.size(); i ++ ) { T param = datas.get(i); batchHandler.handler(statement, param, i); statement.addBatch(); } statement.executeBatch(); } else { int point = batchsize - 1; int count = 0; for(int i = 0 ;i < datas.size(); i ++ ) { T param = datas.get(i); batchHandler.handler(statement, param, i); statement.addBatch(); if((count > 0 && count % point == 0 ) ){ statement.executeBatch(); statement.clearBatch(); count = 0; continue; } count ++; } if(count > 0) statement.executeBatch(); } } catch(BatchUpdateException error) { if(stmtInfo != null) stmtInfo.errorHandle(error); throw error; } catch (Exception e) { // try{ // // log.error("Execuete batch prepared Error:" + e.getMessage(), e); // } // catch(Exception ei) // { // // } if(stmtInfo != null) stmtInfo.errorHandle(e); if(e instanceof SQLException) throw (SQLException)e; else throw new NestedSQLException(e.getMessage(),e); } finally { if(stmtInfo != null) stmtInfo.dofinally(); stmtInfo = null; } } public static void execute(String dbname, SQLInfo sql, List beans,int action) throws SQLException { execute(dbname, sql, beans,false,action,null); } public static void execute(String dbname, SQLInfo sql, List beans,int action,GetCUDResult getCUDResult) throws SQLException { execute(dbname, sql, beans,false,action,getCUDResult); } protected static Object execute(String dbname, SQLInfo sql,int action, Object... fields) throws SQLException { // if(fields == null || fields.length == 0) // return null; SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); if(action == PreparedDBUtil.INSERT) dbutil.preparedInsert(dbname, sql); else if(action == PreparedDBUtil.DELETE) dbutil.preparedDelete(dbname, sql); else if(action == PreparedDBUtil.UPDATE) dbutil.preparedUpdate(dbname, sql); else dbutil.preparedUpdate(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } return dbutil.executePrepared(); } protected static void executeBatch(String dbname, SQLInfo sql,int action, Object fields_) throws SQLException { // if(fields == null || fields.length == 0) // return ; SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); if(action == PreparedDBUtil.INSERT) dbutil.preparedInsert(dbname, sql); else if(action == PreparedDBUtil.DELETE) dbutil.preparedDelete(dbname, sql); else if(action == PreparedDBUtil.UPDATE) dbutil.preparedUpdate(dbname, sql); else dbutil.preparedUpdate(dbname, sql); if(fields_ != null ) { Class componetType = fields_.getClass().getComponentType(); if(componetType == int.class) { int[] fields = (int[])fields_; if(fields != null && fields.length > 0) { { for(int i = 0; i < fields.length ; i ++) { int field = fields[i]; dbutil.setInt(1, field); dbutil.addPreparedBatch(); } } } } else if(componetType == long.class) { long[] fields = (long[])fields_; if(fields != null && fields.length > 0) { { for(int i = 0; i < fields.length ; i ++) { long field = fields[i]; dbutil.setLong(1, field); dbutil.addPreparedBatch(); } } } } else if(componetType == String.class) { String[] fields = (String[])fields_; if(fields != null && fields.length > 0) { { for(int i = 0; i < fields.length ; i ++) { String field = fields[i]; dbutil.setString(1, field); dbutil.addPreparedBatch(); } } } } else if(componetType == short.class) { short[] fields = (short[])fields_; if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { short field = fields[i]; dbutil.setShort(1, field); dbutil.addPreparedBatch(); } } } } dbutil.executePreparedBatch(); } public static Object update( SQLInfo sql, Object... fields) throws SQLException { return execute(null, sql,PreparedDBUtil.UPDATE, fields); } public static Object delete(SQLInfo sql, Object... fields) throws SQLException { return execute(null, sql,PreparedDBUtil.DELETE, fields); } // public static void deleteByKeys(SQLInfo sql, Object... fields) throws SQLException { // executeBatch(null, sql,PreparedDBUtil.DELETE, fields); // // } // public static void deleteByKeysWithDBName(String dbname,SQLInfo sql, Object... fields) throws SQLException { // executeBatch(null, sql,PreparedDBUtil.DELETE, fields); // // } public static void deleteByKeys(SQLInfo sql, int... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.DELETE, fields); } public static void deleteByKeysWithDBName(String dbname,SQLInfo sql, int... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.DELETE, fields); } public static void updateByKeys(SQLInfo sql, int... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.UPDATE, fields); } public static void updateByKeysWithDBName(String dbname,SQLInfo sql, int... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.UPDATE, fields); } public static void deleteByLongKeys(SQLInfo sql, long... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.DELETE, fields); } public static void deleteByLongKeysWithDBName(String dbname,SQLInfo sql, long... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.DELETE, fields); } public static void updateByLongKeys(SQLInfo sql, long... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.UPDATE, fields); } public static void updateByLongKeysWithDBName(String dbname,SQLInfo sql, long... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.UPDATE, fields); } public static void deleteByKeys(SQLInfo sql, String... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.DELETE, fields); } public static void deleteByKeysWithDBName(String dbname,SQLInfo sql, String... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.DELETE, fields); } public static void updateByKeys(SQLInfo sql, String... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.UPDATE, fields); } public static void updateByKeysWithDBName(String dbname,SQLInfo sql, String... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.UPDATE, fields); } public static void deleteByShortKeys(SQLInfo sql, short... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.DELETE, fields); } public static void deleteByShortKeysWithDBName(String dbname,SQLInfo sql, short... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.DELETE, fields); } public static void updateByShortKeys(SQLInfo sql, short... fields) throws SQLException { executeBatch(null, sql,PreparedDBUtil.UPDATE, fields); } public static void updateByShortKeysWithDBName(String dbname,SQLInfo sql, short... fields) throws SQLException { executeBatch(dbname, sql,PreparedDBUtil.UPDATE, fields); } public static Object insert(SQLInfo sql, Object... fields) throws SQLException { return execute(null, sql,PreparedDBUtil.INSERT, fields); } public static Object updateWithDBName(String dbname, SQLInfo sql, Object... fields) throws SQLException { return execute(dbname, sql,PreparedDBUtil.UPDATE, fields); } public static Object deleteWithDBName(String dbname, SQLInfo sql, Object... fields) throws SQLException { return execute(dbname, sql,PreparedDBUtil.DELETE, fields); } public static Object insertWithDBName(String dbname, SQLInfo sql, Object... fields) throws SQLException { return execute(dbname, sql,PreparedDBUtil.INSERT, fields); } public static void updateBeans(String dbname, SQLInfo sql, List beans) throws SQLException { if(beans == null || beans.size() == 0) return ; execute( dbname, sql, beans,PreparedDBUtil.UPDATE,(GetCUDResult)null); } public static void updateBeans(String dbname, SQLInfo sql, List beans,GetCUDResult GetCUDResult) throws SQLException { if(beans == null || beans.size() == 0) return ; execute( dbname, sql, beans,PreparedDBUtil.UPDATE,GetCUDResult); } public static void deleteBeans(String dbname, SQLInfo sql, List beans) throws SQLException { if(beans == null || beans.size() == 0) return ; execute( dbname, sql, beans,PreparedDBUtil.DELETE); } public static void deleteBeans(String dbname, SQLInfo sql, List beans,GetCUDResult GetCUDResult) throws SQLException { if(beans == null || beans.size() == 0) return ; execute( dbname, sql, beans,PreparedDBUtil.DELETE, GetCUDResult); } public static void insertBean(String dbname, SQLInfo sql, Object bean) throws SQLException { if(bean == null) return ; // List datas = new ArrayList(); // datas.add(bean); // insertBeans( dbname, sql, datas); CUDexecute(dbname, sql, bean,PreparedDBUtil.INSERT,false); } public static void insertBean(String dbname, SQLInfo sql, Object bean,GetCUDResult getCUDResult) throws SQLException { if(bean == null) return ; // List datas = new ArrayList(); // datas.add(bean); // insertBeans( dbname, sql, datas); if(getCUDResult == null) { CUDexecute(dbname, sql, bean,PreparedDBUtil.INSERT,false); } else { GetCUDResult getCUDResult_ = (GetCUDResult)CUDexecute(dbname, sql, bean,PreparedDBUtil.INSERT,true); getCUDResult.setGetCUDResult(getCUDResult_); } } public static void updateBean(String dbname, SQLInfo sql, Object bean) throws SQLException { if(bean == null ) return ; // List datas = new ArrayList(); // datas.add(bean); // updateBeans( dbname, sql, datas); CUDexecute(dbname, sql, bean,PreparedDBUtil.UPDATE,false); } public static void updateBean(String dbname, SQLInfo sql, Object bean,GetCUDResult getCUDResult) throws SQLException { if(bean == null ) return ; // List datas = new ArrayList(); // datas.add(bean); // updateBeans( dbname, sql, datas); if(getCUDResult != null) { GetCUDResult getCUDResult_ = (GetCUDResult)CUDexecute(dbname, sql, bean,PreparedDBUtil.UPDATE,true); getCUDResult.setGetCUDResult(getCUDResult_); } else CUDexecute(dbname, sql, bean,PreparedDBUtil.UPDATE,false); } public static void updateBean( SQLInfo sql, Object bean,GetCUDResult getCUDResult) throws SQLException { // if(bean == null ) // return ; // List datas = new ArrayList(); // datas.add(bean); // updateBeans( null, sql, datas); updateBean((String)null, sql, bean, getCUDResult); } public static void deleteBean( SQLInfo sql, Object bean,GetCUDResult getCUDResult) throws SQLException { deleteBean((String )null,sql, bean,getCUDResult) ; } public static void deleteBean(String dbname, SQLInfo sql, Object bean) throws SQLException { if(bean == null) return ; // List datas = new ArrayList(); // datas.add(bean); // deleteBeans( dbname, sql, datas); CUDexecute(dbname, sql, bean,PreparedDBUtil.DELETE,false); } public static void deleteBean(String dbname, SQLInfo sql, Object bean,GetCUDResult getCUDResult) throws SQLException { if(bean == null) return ; // List datas = new ArrayList(); // datas.add(bean); // deleteBeans( dbname, sql, datas); if(getCUDResult != null) { GetCUDResult getCUDResult_ = (GetCUDResult)CUDexecute(dbname, sql, bean,PreparedDBUtil.DELETE,true); getCUDResult.setGetCUDResult(getCUDResult_); } else CUDexecute(dbname, sql, bean,PreparedDBUtil.DELETE,false); } public static void insertBeans(SQLInfo sql, List beans) throws SQLException { insertBeans( null,sql, beans); } public static void insertBeans(SQLInfo sql, List beans,GetCUDResult getCUDResult) throws SQLException { insertBeans( (String)null,sql, beans,getCUDResult); } public static void updateBeans( SQLInfo sql, List beans) throws SQLException { updateBeans( null,sql, beans); } public static void deleteBeans( SQLInfo sql, List beans) throws SQLException { deleteBeans( null,sql, beans); } public static void insertBean( SQLInfo sql, Object bean) throws SQLException { // if(bean == null) // return ; // List datas = new ArrayList(); // datas.add(bean); // insertBeans( null, sql, datas); insertBean( (String)null,sql, bean); } public static void insertBean( SQLInfo sql, Object bean,GetCUDResult getCUDResult) throws SQLException { // if(bean == null) // return ; // List datas = new ArrayList(); // datas.add(bean); // insertBeans( null, sql, datas); insertBean( (String)null,sql, bean,getCUDResult); } public static void updateBean( SQLInfo sql, Object bean) throws SQLException { // if(bean == null ) // return ; // List datas = new ArrayList(); // datas.add(bean); // updateBeans( null, sql, datas); updateBean( (String)null,sql, bean); } public static void deleteBean(SQLInfo sql, Object bean) throws SQLException { // if(bean == null) // return ; // List datas = new ArrayList(); // datas.add(bean); // deleteBeans( null, sql, datas); deleteBean((String)null,sql, bean); } public static <T> List<T> queryList(Class<T> beanType, SQLInfo sql, Object... fields) throws SQLException { return queryListWithDBName(beanType,null, sql, fields); } /** * * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo queryListInfoWithDBName(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql,offset,pagesize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setMaxPageItems(pagesize); datas.setDatas(dbutil.executePreparedForList(beanType)); datas.setTotalSize(dbutil.getLongTotalSize()); return datas; } /** * * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo moreListInfoWithDBName(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.setMore(true); dbutil.preparedSelect(dbname, sql,offset,pagesize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); // datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMore(true); datas.setResultSize(dbutil.size()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoWithDBName2ndTotalsize(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,long totalsize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql,offset,pagesize,totalsize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoWithDBName2ndTotalsizesql(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelectWithTotalsizesql(dbname, sql,offset,pagesize,totalsizesql); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param beanType * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo queryListInfo(Class<?> beanType, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { return queryListInfoWithDBName(beanType, null,sql, offset,pagesize,fields); } public static ListInfo queryListInfoWithTotalsize(Class<?> beanType, SQLInfo sql, long offset,int pagesize,long totalsize,Object... fields) throws SQLException { return queryListInfoWithDBName2ndTotalsize(beanType, null,sql, offset,pagesize,totalsize,fields); } public static ListInfo queryListInfoWithTotalsizesql(Class<?> beanType, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object... fields) throws SQLException { return queryListInfoWithDBName2ndTotalsizesql(beanType, null,sql, offset,pagesize,totalsizesql,fields); } public static <T> T queryObject(Class<T> beanType, SQLInfo sql, Object... fields) throws SQLException { return queryObjectWithDBName(beanType,null, sql, fields); } public static <T> List<T> queryListWithDBName(Class<T> beanType,String dbname, SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } return dbutil.executePreparedForList(beanType); } public static <T> T queryObjectWithDBName(Class<T> beanType,String dbname, SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } return (T)dbutil.executePreparedForObject(beanType); } public static <T> List<T> queryListByRowHandler(RowHandler rowhandler,Class<T> beanType, SQLInfo sql, Object... fields) throws SQLException { return queryListWithDBNameByRowHandler(rowhandler,beanType,null, sql, fields); } /** * * @param rowhandler * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo queryListInfoWithDBNameByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql,offset,pagesize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo moreListInfoWithDBNameByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.setMore(true); dbutil.preparedSelect(dbname, sql,offset,pagesize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); // datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMore(true); datas.setResultSize(dbutil.size()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoWithDBName2ndTotalsizeByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,long totalsize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql,offset,pagesize,totalsize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoWithDBName2ndTotalsizesqlByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelectWithTotalsizesql(dbname, sql,offset,pagesize,totalsizesql); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param beanType * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo queryListInfoByRowHandler(RowHandler rowhandler,Class<?> beanType, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { return queryListInfoWithDBNameByRowHandler( rowhandler,beanType, null,sql, offset,pagesize,fields); } public static ListInfo queryListInfoWithTotalsizeByRowHandler(RowHandler rowhandler,Class<?> beanType, SQLInfo sql, long offset,int pagesize,long totalsize,Object... fields) throws SQLException { return queryListInfoWithDBName2ndTotalsizeByRowHandler( rowhandler,beanType, null,sql, offset,pagesize,totalsize,fields); } public static ListInfo queryListInfoWithTotalsizesqlByRowHandler(RowHandler rowhandler,Class<?> beanType, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object... fields) throws SQLException { return queryListInfoWithDBName2ndTotalsizesqlByRowHandler( rowhandler,beanType, null,sql, offset,pagesize,totalsizesql,fields); } public static <T> T queryObjectByRowHandler(RowHandler rowhandler,Class<T> beanType, SQLInfo sql, Object... fields) throws SQLException { return queryObjectWithDBNameByRowHandler(rowhandler,beanType,null, sql, fields); } public static <T> List<T> queryListWithDBNameByRowHandler(RowHandler rowhandler,Class<T> beanType,String dbname, SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } return dbutil.executePreparedForList(beanType,rowhandler); } public static <T> T queryObjectWithDBNameByRowHandler(RowHandler rowhandler,Class<T> beanType,String dbname, SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } return (T)dbutil.executePreparedForObject(beanType,rowhandler); } public static void queryByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, Object... fields) throws SQLException { queryWithDBNameByNullRowHandler( rowhandler,null, sql, fields); } /** * * @param rowhandler * @param dbname * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo queryListInfoWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql,offset,pagesize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param dbname * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo moreListInfoWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.setMore(true); dbutil.preparedSelect(dbname, sql,offset,pagesize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); // datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMore(true); datas.setResultSize(dbutil.size()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoWithDBName2ndTotalsizeByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,long totalsize,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql,offset,pagesize,totalsize); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoWithDBName2ndTotalsizesqlByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelectWithTotalsizesql(dbname, sql,offset,pagesize,totalsizesql); if(fields != null && fields.length > 0) { int length = fields.length ; Object last = fields[length-1]; if(last instanceof PagineOrderby) { dbutil.setPagineOrderby( ((PagineOrderby)last).getPagineOrderby()); length = length - 1; } for(int i = 0; i < length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param sql * @param offset * @param pagesize * @param fields * @return * @throws SQLException */ public static ListInfo queryListInfoByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, long offset,int pagesize,Object... fields) throws SQLException { return queryListInfoWithDBNameByNullRowHandler( rowhandler, null,sql, offset,pagesize,fields); } public static ListInfo queryListInfoWithTotalsizeByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, long offset,int pagesize,long totalsize,Object... fields) throws SQLException { return queryListInfoWithDBName2ndTotalsizeByNullRowHandler( rowhandler, null,sql, offset,pagesize,totalsize,fields); } public static ListInfo queryListInfoWithTotalsizesqlByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object... fields) throws SQLException { return queryListInfoWithDBName2ndTotalsizesqlByNullRowHandler( rowhandler, null,sql, offset,pagesize,totalsizesql,fields); } public static void queryWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } dbutil.executePreparedWithRowHandler(rowhandler); } public static <T> List<T> queryListBean(Class<T> beanType, SQLInfo sql, Object bean) throws SQLException { return queryListBeanWithDBName(beanType,null, sql, bean); } /** * * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param totalsize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanWithDBName(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,long totalsize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,totalsize); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoBeanWithDBName(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelectWithTotalsizesql(params,dbname, sql,offset,pagesize,totalsizesql); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanWithDBName(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1L); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param bean * @return * @throws SQLException */ public static ListInfo moreListInfoBeanWithDBName(Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.setMore(true); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1L); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType)); // datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMore(true); datas.setResultSize(dbutil.size()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param beanType * @param sql * @param offset * @param pagesize * @param totalsize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBean(Class<?> beanType, SQLInfo sql, long offset,int pagesize,long totalsize,Object bean) throws SQLException { return queryListInfoBeanWithDBName(beanType, null,sql, offset,pagesize,totalsize,bean); } public static ListInfo queryListInfoBean(Class<?> beanType, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object bean) throws SQLException { return queryListInfoBeanWithDBName(beanType, null,sql, offset,pagesize,totalsizesql,bean); } public static ListInfo queryListInfoBean(Class<?> beanType, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { return queryListInfoBeanWithDBName(beanType, null,sql, offset,pagesize,-1L,bean); } public static String queryField( SQLInfo sql, Object... fields) throws SQLException { return queryFieldWithDBName(null, sql, fields); } public static String queryFieldBean( SQLInfo sql, Object bean) throws SQLException { return queryFieldBeanWithDBName(null, sql, bean); } public static String queryFieldBeanWithDBName(String dbname, SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); dbutil.executePrepared(); if(dbutil.size() > 0) return dbutil.getString(0, 0); else { return null; } } public static String queryFieldWithDBName(String dbname, SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } dbutil.executePrepared(); if(dbutil.size() > 0) return dbutil.getString(0, 0); else { return null; } } /** * * @param <T> * @param beanType * @param sql * @param fields * @return * @throws SQLException */ public static <T> T queryTField( Class<T> beanType,SQLInfo sql, Object... fields) throws SQLException { return queryTFieldWithDBName(null, beanType,sql, fields); } public static <T> T queryTFieldBean( Class<T> type,SQLInfo sql, Object bean) throws SQLException { return queryTFieldBeanWithDBName(null, type,sql, bean); } public static <T> T queryTFieldBeanWithDBName(String dbname, Class<T> type,SQLInfo sql, Object bean) throws SQLException { // PreparedDBUtil dbutil = new PreparedDBUtil(); // SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); // dbutil.preparedSelect(params,dbname, sql); // // // // // dbutil.executePrepared(); // if(dbutil.size() > 0) // return (T)ValueObjectUtil.typeCast(dbutil.getObject(0, 0),type); // else // { // return (T)ValueObjectUtil.getDefaultValue(type); // } return queryTFieldBeanWithDBName(dbname, type,(FieldRowHandler<T>)null,sql, bean) ; } public static <T> T queryTFieldWithDBName(String dbname, Class<T> type,SQLInfo sql, Object... fields) throws SQLException { return queryTFieldWithDBName(dbname, type,(FieldRowHandler<T>)null,sql, fields); } public static <T> T queryTField( Class<T> type,FieldRowHandler<T> fieldRowHandler,SQLInfo sql, Object... fields) throws SQLException { return queryTFieldWithDBName(null, type,fieldRowHandler,sql, fields); } public static <T> T queryTFieldBean( Class<T> type,FieldRowHandler<T> fieldRowHandler,SQLInfo sql, Object bean) throws SQLException { return queryTFieldBeanWithDBName(null, type,fieldRowHandler,sql, bean); } public static <T> T queryTFieldBeanWithDBName(String dbname, Class<T> type,FieldRowHandler<T> fieldRowHandler,SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); if(fieldRowHandler == null) { dbutil.executePrepared(); if(dbutil.size() > 0) return (T)ValueObjectUtil.typeCast(dbutil.getObject(0, 0),type); else { return (T)ValueObjectUtil.getDefaultValue(type); } } else { return (T)dbutil.executePreparedForObject(type, fieldRowHandler); } } public static <T> T queryTFieldWithDBName(String dbname, Class<T> type,FieldRowHandler<T> fieldRowHandler,SQLInfo sql, Object... fields) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.preparedSelect(dbname, sql); if(fields != null && fields.length > 0) { for(int i = 0; i < fields.length ; i ++) { Object field = fields[i]; dbutil.setObject(i + 1, field); } } if(fieldRowHandler == null) { dbutil.executePrepared(); if(dbutil.size() > 0) return (T)ValueObjectUtil.typeCast(dbutil.getObject(0, 0),type); else { return (T)ValueObjectUtil.getDefaultValue(type); } } else { return (T)dbutil.executePreparedForObject(type, fieldRowHandler); } } public static <T> T queryObjectBean(Class<T> beanType, SQLInfo sql, Object bean) throws SQLException { return queryObjectBeanWithDBName(beanType,null, sql, bean); } public static <T> List<T> queryListBeanWithDBName(Class<T> beanType,String dbname, SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); return dbutil.executePreparedForList(beanType); } public static <T> T queryObjectBeanWithDBName(Class<T> beanType,String dbname, SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); return (T)dbutil.executePreparedForObject(beanType); } public static <T> List<T> queryListBeanByRowHandler(RowHandler rowhandler,Class<T> beanType, SQLInfo sql, Object bean) throws SQLException { return queryListBeanWithDBNameByRowHandler(rowhandler,beanType,null, sql, bean); } /** * * @param rowhandler * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param totalsize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanWithDBNameByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,long totalsize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,totalsize); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param bean * @return * @throws SQLException */ public static ListInfo moreListInfoBeanWithDBNameByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.setMore(true); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); // datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMore(true); datas.setResultSize(dbutil.size()); datas.setMaxPageItems(pagesize); return datas; } public static ListInfo queryListInfoBeanWithDBNameByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelectWithTotalsizesql(params,dbname, sql,offset,pagesize,totalsizesql); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param beanType * @param dbname * @param sql * @param offset * @param pagesize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanWithDBNameByRowHandler(RowHandler rowhandler,Class<?> beanType,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1L); ListInfo datas = new ListInfo(); datas.setDatas(dbutil.executePreparedForList(beanType,rowhandler)); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param beanType * @param sql * @param offset * @param pagesize * @param totalsize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanByRowHandler(RowHandler rowhandler,Class<?> beanType, SQLInfo sql, long offset,int pagesize,long totalsize,Object bean) throws SQLException { return queryListInfoBeanWithDBNameByRowHandler( rowhandler,beanType, null,sql, offset,pagesize,totalsize,bean); } public static ListInfo queryListInfoBeanByRowHandler(RowHandler rowhandler,Class<?> beanType, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object bean) throws SQLException { return queryListInfoBeanWithDBNameByRowHandler( rowhandler,beanType, null,sql, offset,pagesize,totalsizesql,bean); } public static ListInfo queryListInfoBeanByRowHandler(RowHandler rowhandler,Class<?> beanType, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { return queryListInfoBeanWithDBNameByRowHandler( rowhandler,beanType, null,sql, offset,pagesize,-1L,bean); } public static <T> T queryObjectBeanByRowHandler(RowHandler rowhandler,Class<T> beanType, SQLInfo sql, Object bean) throws SQLException { return queryObjectBeanWithDBNameByRowHandler(rowhandler,beanType,null, sql, bean); } public static <T> List<T> queryListBeanWithDBNameByRowHandler(RowHandler rowhandler,Class<T> beanType,String dbname, SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); return dbutil.executePreparedForList(beanType,rowhandler); } public static <T> T queryObjectBeanWithDBNameByRowHandler(RowHandler rowhandler,Class<T> beanType,String dbname, SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); return (T)dbutil.executePreparedForObject(beanType,rowhandler); } public static void queryBeanByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, Object bean) throws SQLException { queryBeanWithDBNameByNullRowHandler( rowhandler,null, sql, bean); } /** * * @param rowhandler * @param dbname * @param sql * @param offset * @param pagesize * @param totalsize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,long totalsize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,totalsize); dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param dbname * @param sql * @param offset * @param pagesize * @param bean * @return * @throws SQLException */ public static ListInfo moreListInfoBeanWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); dbutil.setMore(true); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1); dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); // datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMore(true); datas.setResultSize(dbutil.size()); datas.setMaxPageItems(pagesize); return datas; } // /** // * // * @param rowhandler // * @param dbname // * @param sql // * @param offset // * @param pagesize // * @param totalsize // * @param bean // * @return // * @throws SQLException // */ // public static ListInfo moreListInfoBeanWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException // { // // SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); // dbutil.setMore(true); // SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); // dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1); // dbutil.executePreparedWithRowHandler(rowhandler); // ListInfo datas = new ListInfo(); //// datas.setTotalSize(dbutil.getLongTotalSize()); // datas.setMore(true); // return datas; // } public static ListInfo queryListInfoBeanWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelectWithTotalsizesql(params,dbname, sql,offset,pagesize,totalsizesql); dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param dbname * @param sql * @param offset * @param pagesize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql,offset,pagesize,-1L); dbutil.executePreparedWithRowHandler(rowhandler); ListInfo datas = new ListInfo(); datas.setTotalSize(dbutil.getLongTotalSize()); datas.setMaxPageItems(pagesize); return datas; } /** * * @param rowhandler * @param sql * @param offset * @param pagesize * @param totalsize * @param bean * @return * @throws SQLException */ public static ListInfo queryListInfoBeanByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, long offset,int pagesize,long totalsize,Object bean) throws SQLException { return queryListInfoBeanWithDBNameByNullRowHandler( rowhandler, null,sql, offset,pagesize,totalsize,bean); } public static ListInfo queryListInfoBeanByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, long offset,int pagesize,SQLInfo totalsizesql,Object bean) throws SQLException { return queryListInfoBeanWithDBNameByNullRowHandler( rowhandler, null,sql, offset,pagesize,totalsizesql,bean); } public static ListInfo queryListInfoBeanByNullRowHandler(NullRowHandler rowhandler, SQLInfo sql, long offset,int pagesize,Object bean) throws SQLException { return queryListInfoBeanWithDBNameByNullRowHandler( rowhandler, null,sql, offset,pagesize,-1L,bean); } public static void queryBeanWithDBNameByNullRowHandler(NullRowHandler rowhandler,String dbname, SQLInfo sql, Object bean) throws SQLException { SQLInfoDBUtil dbutil = new SQLInfoDBUtil(); SQLParams params = SQLParams.convertBeanToSqlParams(bean, sql, dbname, PreparedDBUtil.SELECT, null); dbutil.preparedSelect(params,dbname, sql); dbutil.executePreparedWithRowHandler(rowhandler); } }