|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.dbutils.AbstractQueryRunner
org.apache.commons.dbutils.QueryRunner
com.github.drinkjava2.jdbpro.ImprovedQueryRunner
public class ImprovedQueryRunner
ImprovedQueryRunner made below improvements compare DbUtils's QueryRunner:
1) Override close() and prepareConnection() method of QueryRunner, use a
ConnectionManager to manage connection, ConnectionManager can get connection
from DataSource or ThreadLocal or some other 3rd party tools like Spring.
2) Override some methods to add logger support
3) Override some execute/update/query methods to support batch operation and
AroundSqlHandler
| Field Summary | |
|---|---|
protected Boolean |
allowShowSQL
|
protected Integer |
batchSize
|
protected ConnectionManager |
connectionManager
|
protected static Boolean |
globalNextAllowShowSql
|
protected static Integer |
globalNextBatchSize
|
protected static ConnectionManager |
globalNextConnectionManager
|
protected static DbProLogger |
globalNextLogger
|
protected static SqlOption |
globalNextMasterSlaveOption
|
protected static SqlHandler[] |
globalNextSqlHandlers
|
protected static SqlTemplateEngine |
globalNextTemplateEngine
|
protected DbProLogger |
logger
|
protected DbPro[] |
masters
|
protected SqlOption |
masterSlaveOption
|
protected String |
name
|
protected DbPro[] |
slaves
|
protected SqlHandler[] |
sqlHandlers
|
protected SqlTemplateEngine |
sqlTemplateEngine
|
| Fields inherited from class org.apache.commons.dbutils.AbstractQueryRunner |
|---|
ds |
| Constructor Summary | |
|---|---|
ImprovedQueryRunner()
|
|
ImprovedQueryRunner(DataSource ds)
|
|
| Method Summary | ||
|---|---|---|
void |
close(Connection conn)
|
|
void |
fillStatement(PreparedStatement stmt,
Object... params)
|
|
protected String |
formatParametersForLoggerOutput(Object... params)
Format parameters for logger output, subClass can override this method to customise parameters format |
|
protected String |
formatSqlForLoggerOutput(String sql)
Format SQL for logger output, subClass can override this method to customise SQL format |
|
Boolean |
getAllowShowSQL()
|
|
Integer |
getBatchSize()
|
|
ConnectionManager |
getConnectionManager()
|
|
static Boolean |
getGlobalNextAllowShowSql()
|
|
static Integer |
getGlobalNextBatchSize()
|
|
static ConnectionManager |
getGlobalNextConnectionManager()
|
|
static DbProLogger |
getGlobalNextLogger()
|
|
static SqlOption |
getGlobalNextMasterSlaveOption()
|
|
static SqlHandler[] |
getGlobalNextSqlHandlers()
|
|
static SqlTemplateEngine |
getGlobalNextTemplateEngine()
|
|
DbProLogger |
getLogger()
|
|
DbPro[] |
getMasters()
|
|
SqlOption |
getMasterSlaveOption()
|
|
String |
getName()
|
|
DbPro[] |
getSlaves()
|
|
ThreadLocal<ArrayList<PreparedSQL>> |
getSqlBatchCache()
|
|
SqlHandler[] |
getSqlHandlers()
|
|
SqlTemplateEngine |
getSqlTemplateEngine()
|
|
static SqlHandler[] |
getThreadLocalSqlHandlers()
Get current thread's ThreadLocal SqlHandler |
|
boolean |
isBatchEnabled()
|
|
static Object[][] |
listListToArray2D(List<List<?>> paramList)
Convert Objects List to 2d array for insertBatch use, insertBatch's last parameter is a 2d array, not easy to use |
|
int[] |
nBatch(Connection conn,
String sql,
List<Object[]> params)
Execute a batch of SQL INSERT, UPDATE, or DELETE queries. |
|
int[] |
nBatch(String sql,
List<Object[]> params)
Execute a batch of SQL INSERT, UPDATE, or DELETE queries. |
|
void |
nBatchBegin()
Start batch sql |
|
void |
nBatchEnd()
Stop batch sql |
|
|
nBatchFlush()
Force flush cached SQLs |
|
|
nInsertBatch(Connection conn,
String sql,
org.apache.commons.dbutils.ResultSetHandler<T> rsh,
List<Object[]> params)
Executes the given batch of INSERT SQL statements. |
|
|
nInsertBatch(String sql,
org.apache.commons.dbutils.ResultSetHandler<T> rsh,
List<Object[]> params)
Executes the given batch of INSERT SQL statements. |
|
static Object[][] |
objectsListToArray2D(List<Object[]> paramList)
Convert List List to 2d array for insertBatch use, insertBatch's last parameter is a 2d array, not easy to use |
|
protected CallableStatement |
prepareCall(Connection conn,
String sql)
|
|
Connection |
prepareConnection()
|
|
protected PreparedStatement |
prepareStatement(Connection conn,
String sql)
|
|
long |
queryForLongValue(Connection conn,
String sql,
Object... params)
Query for a long value |
|
long |
queryForLongValue(String sql,
Object... params)
Query for a long value |
|
|
queryForObject(Connection conn,
String sql,
Object... params)
Query for an Object, only return the first row and first column's value if more than one column or more than 1 rows returned, a null object may return if no result found, SQLException may be threw if some SQL operation Exception happen. |
|
|
queryForObject(String sql,
Object... params)
Query for an Object, only return the first row and first column's value if more than one column or more than 1 rows returned, a null object may return if no result found, SQLException may be threw if some SQL operation Exception happen. |
|
protected
|
runExecute(PreparedSQL ps)
Executes the PreparedSQL query statement |
|
protected
|
runInsert(PreparedSQL ps)
Executes the PreparedSQL insert statement |
|
Object |
runPreparedSQL(PreparedSQL ps)
This is the core method of whole project, handle a PreparedSQL instance and return a result |
|
protected
|
runQuery(PreparedSQL ps)
Executes the PreparedSQL query statement |
|
Object |
runRealSqlMethod(PreparedSQL ps)
Execute real SQL operation according PreparedSql's SqlType |
|
protected int |
runUpdate(PreparedSQL ps)
Executes the PreparedSQL update statement |
|
void |
setAllowShowSQL(Boolean allowShowSQL)
This method is not thread safe, suggest only use at program starting |
|
void |
setBatchSize(Integer batchSize)
This method is not thread safe, suggest only use at program starting |
|
void |
setConnectionManager(ConnectionManager connectionManager)
This method is not thread safe, suggest only use at program starting |
|
static void |
setGlobalNextAllowShowSql(Boolean allowShowSql)
|
|
static void |
setGlobalNextBatchSize(Integer batchSize)
|
|
static void |
setGlobalNextConnectionManager(ConnectionManager connectionManager)
|
|
static void |
setGlobalNextLogger(DbProLogger dbProLogger)
|
|
static void |
setGlobalNextMasterSlaveOption(SqlOption masterSlaveOption)
|
|
static void |
setGlobalNextSqlHandlers(SqlHandler... sqlHandlers)
|
|
static void |
setGlobalNextTemplateEngine(SqlTemplateEngine sqlTemplateEngine)
|
|
void |
setLogger(DbProLogger logger)
This method is not thread safe, suggest only use at program starting |
|
void |
setMasters(DbPro[] masters)
This method is not thread safe, suggest only use at program starting |
|
void |
setMasterSlaveOption(SqlOption masterSlaveOption)
This method is not thread safe, suggest only use at program starting |
|
void |
setName(String name)
This method is not thread safe, suggest only use at program starting |
|
void |
setSlaves(DbPro[] slaves)
This method is not thread safe, suggest only use at program starting |
|
void |
setSqlHandlers(SqlHandler[] sqlHandlers)
This method is not thread safe, suggest only use at program starting |
|
void |
setSqlTemplateEngine(SqlTemplateEngine sqlTemplateEngine)
This method is not thread safe, suggest only use at program starting |
|
static void |
setThreadLocalSqlHandlers(SqlHandler... handlers)
Set current thread's ThreadLocal SqlHandler |
|
protected void |
staticGlobalNextMethods_____________________()
|
|
| Methods inherited from class org.apache.commons.dbutils.QueryRunner |
|---|
batch, batch, execute, execute, execute, execute, insert, insert, insert, insert, insertBatch, insertBatch, query, query, query, query, query, query, query, query, update, update, update, update, update, update |
| Methods inherited from class org.apache.commons.dbutils.AbstractQueryRunner |
|---|
close, close, fillStatementWithBean, fillStatementWithBean, getDataSource, isPmdKnownBroken, prepareStatement, rethrow, wrap |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static Boolean globalNextAllowShowSql
protected static SqlOption globalNextMasterSlaveOption
protected static ConnectionManager globalNextConnectionManager
protected static DbProLogger globalNextLogger
protected static Integer globalNextBatchSize
protected static SqlTemplateEngine globalNextTemplateEngine
protected static SqlHandler[] globalNextSqlHandlers
protected SqlTemplateEngine sqlTemplateEngine
protected ConnectionManager connectionManager
protected Boolean allowShowSQL
protected SqlOption masterSlaveOption
protected DbProLogger logger
protected Integer batchSize
protected SqlHandler[] sqlHandlers
protected DbPro[] slaves
protected DbPro[] masters
protected String name
| Constructor Detail |
|---|
public ImprovedQueryRunner()
public ImprovedQueryRunner(DataSource ds)
| Method Detail |
|---|
public void close(Connection conn)
throws SQLException
close in class org.apache.commons.dbutils.AbstractQueryRunnerSQLException
public Connection prepareConnection()
throws SQLException
prepareConnection in class org.apache.commons.dbutils.AbstractQueryRunnerSQLException
protected CallableStatement prepareCall(Connection conn,
String sql)
throws SQLException
prepareCall in class org.apache.commons.dbutils.AbstractQueryRunnerSQLException
protected PreparedStatement prepareStatement(Connection conn,
String sql)
throws SQLException
prepareStatement in class org.apache.commons.dbutils.AbstractQueryRunnerSQLException
public void fillStatement(PreparedStatement stmt,
Object... params)
throws SQLException
fillStatement in class org.apache.commons.dbutils.AbstractQueryRunnerSQLExceptionprotected String formatSqlForLoggerOutput(String sql)
protected String formatParametersForLoggerOutput(Object... params)
public <T> T nBatchFlush()
public void nBatchBegin()
public void nBatchEnd()
public <T> T queryForObject(Connection conn,
String sql,
Object... params)
throws SQLException
sql - The SQLparams - The parameters
SQLException
public long queryForLongValue(Connection conn,
String sql,
Object... params)
throws SQLException
sql - The SQLparams - The parameters
SQLException
public <T> T queryForObject(String sql,
Object... params)
throws SQLException
sql - The SQLparams - The parameters
SQLException
public long queryForLongValue(String sql,
Object... params)
throws SQLException
sql - The SQLparams - The parameters
SQLExceptionpublic Object runPreparedSQL(PreparedSQL ps)
public Object runRealSqlMethod(PreparedSQL ps)
protected <T> T runQuery(PreparedSQL ps)
ps - The PreparedSQL
protected <T> T runInsert(PreparedSQL ps)
ps - The PreparedSQL
protected <T> T runExecute(PreparedSQL ps)
ps - The PreparedSQL
protected int runUpdate(PreparedSQL ps)
ps - The PreparedSQL
public int[] nBatch(String sql,
List<Object[]> params)
sql - The SQL to execute.params - A List of parameter list.
public int[] nBatch(Connection conn,
String sql,
List<Object[]> params)
throws SQLException
conn - The Connection to use to run the query. The caller is responsible
for closing this Connection.sql - The SQL to execute.params - A List of parameter list.
SQLException
public <T> T nInsertBatch(String sql,
org.apache.commons.dbutils.ResultSetHandler<T> rsh,
List<Object[]> params)
T - The type of object that the handler returnssql - The SQL statement to execute.rsh - The handler used to create the result object from the
ResultSet of auto-generated keys.params - A List of parameter list.
public <T> T nInsertBatch(Connection conn,
String sql,
org.apache.commons.dbutils.ResultSetHandler<T> rsh,
List<Object[]> params)
T - The type of object that the handler returnsconn - The connection to use to run the query.sql - The SQL to execute.rsh - The handler used to create the result object from the
ResultSet of auto-generated keys.params - A List of parameter list.
public static Object[][] listListToArray2D(List<List<?>> paramList)
public static Object[][] objectsListToArray2D(List<Object[]> paramList)
public static SqlHandler[] getThreadLocalSqlHandlers()
public static void setThreadLocalSqlHandlers(SqlHandler... handlers)
protected void staticGlobalNextMethods_____________________()
public static DbProLogger getGlobalNextLogger()
public static void setGlobalNextLogger(DbProLogger dbProLogger)
public static Integer getGlobalNextBatchSize()
public static void setGlobalNextBatchSize(Integer batchSize)
public static SqlTemplateEngine getGlobalNextTemplateEngine()
public static void setGlobalNextTemplateEngine(SqlTemplateEngine sqlTemplateEngine)
public static Boolean getGlobalNextAllowShowSql()
public static void setGlobalNextAllowShowSql(Boolean allowShowSql)
public static SqlOption getGlobalNextMasterSlaveOption()
public static void setGlobalNextMasterSlaveOption(SqlOption masterSlaveOption)
public static ConnectionManager getGlobalNextConnectionManager()
public static void setGlobalNextConnectionManager(ConnectionManager connectionManager)
public static SqlHandler[] getGlobalNextSqlHandlers()
public static void setGlobalNextSqlHandlers(SqlHandler... sqlHandlers)
public Boolean getAllowShowSQL()
public void setAllowShowSQL(Boolean allowShowSQL)
public SqlTemplateEngine getSqlTemplateEngine()
public void setSqlTemplateEngine(SqlTemplateEngine sqlTemplateEngine)
public ConnectionManager getConnectionManager()
public void setConnectionManager(ConnectionManager connectionManager)
public DbProLogger getLogger()
public void setLogger(DbProLogger logger)
public Integer getBatchSize()
public void setBatchSize(Integer batchSize)
public SqlHandler[] getSqlHandlers()
public void setSqlHandlers(SqlHandler[] sqlHandlers)
public DbPro[] getSlaves()
public void setSlaves(DbPro[] slaves)
public DbPro[] getMasters()
public void setMasters(DbPro[] masters)
public SqlOption getMasterSlaveOption()
public void setMasterSlaveOption(SqlOption masterSlaveOption)
public String getName()
public void setName(String name)
public boolean isBatchEnabled()
public ThreadLocal<ArrayList<PreparedSQL>> getSqlBatchCache()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||