Package io.jmix.reports.yarg.util.db
Class QueryRunner
java.lang.Object
io.jmix.reports.yarg.util.db.QueryRunner
Executes SQL queries with pluggable strategies for handling
 
ResultSets.  This class is thread safe.- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected DataSourceThe DataSource to retrieve connections from.
- 
Constructor SummaryConstructorsConstructorDescriptionConstructor for QueryRunner.Constructor for QueryRunner.
- 
Method SummaryModifier and TypeMethodDescriptionint[]Execute a batch of SQL INSERT, UPDATE, or DELETE queries.int[]Execute a batch of SQL INSERT, UPDATE, or DELETE queries.int[]batch(Connection conn, String sql, Object[][] params) Execute a batch of SQL INSERT, UPDATE, or DELETE queries.int[]batch(Connection conn, String sql, Object[][] params, int[] paramTypes) Execute a batch of SQL INSERT, UPDATE, or DELETE queries.protected voidclose(Connection conn) Close aConnection.protected voidClose aResultSet.protected voidClose aStatement.protected voidfillStatement(PreparedStatement stmt, Object[] params) Fill thePreparedStatementreplacement parameters with the given objects.protected voidfillStatement(PreparedStatement stmt, Object[] params, int[] paramTypes) Fill thePreparedStatementreplacement parameters with the given objects.Returns theDataSourcethis runner is using.protected ConnectionFactory method that creates and initializes aConnectionobject.protected PreparedStatementprepareStatement(Connection conn, String sql) Factory method that creates and initializes aPreparedStatementobject for the given SQL.<T> Tquery(String sql, ResultSetHandler<T> rsh) Executes the given SELECT SQL without any replacement parameters.<T> Tquery(String sql, Object[] params, ResultSetHandler<T> rsh) Executes the given SELECT SQL query and returns a result object.<T> Tquery(String sql, Object param, ResultSetHandler<T> rsh) Executes the given SELECT SQL with a single replacement parameter.<T> Tquery(Connection conn, String sql, ResultSetHandler<T> rsh) Execute an SQL SELECT query without any replacement parameters.<T> Tquery(Connection conn, String sql, Object[] params, ResultSetHandler<T> rsh) Execute an SQL SELECT query with replacement parameters.<T> Tquery(Connection conn, String sql, Object param, ResultSetHandler<T> rsh) Execute an SQL SELECT query with a single replacement parameter.protected voidrethrow(SQLException cause, String sql, Object[] params) Throws a new exception with a more informative error message.voidsetDataSource(DataSource dataSource) Sets theDataSourcethis runner will use to get database connections from.intExecutes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters.intExecutes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter.intExecutes the given INSERT, UPDATE, or DELETE SQL statement.intupdate(Connection conn, String sql) Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.intupdate(Connection conn, String sql, Object param) Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.intupdate(Connection conn, String sql, Object[] params) Execute an SQL INSERT, UPDATE, or DELETE query.intupdate(Connection conn, String sql, Object[] params, int[] paramTypes) Execute an SQL INSERT, UPDATE, or DELETE query.protected ResultSetWrap theResultSetin a decorator before processing it.
- 
Field Details- 
dsThe DataSource to retrieve connections from.
 
- 
- 
Constructor Details- 
QueryRunnerpublic QueryRunner()Constructor for QueryRunner.
- 
QueryRunnerConstructor for QueryRunner. Methods that do not take aConnectionparameter will retrieve connections from thisDataSource.- Parameters:
- ds- The- DataSourceto retrieve connections from.
 
 
- 
- 
Method Details- 
batchExecute a batch of SQL INSERT, UPDATE, or DELETE queries.- Parameters:
- conn- The Connection to use to run the query. The caller is responsible for closing this Connection.
- sql- The SQL to execute.
- params- An array of query replacement parameters. Each row in this array is one set of batch replacement values.
- Returns:
- The number of rows updated per statement.
- Throws:
- SQLException- if a database access error occurs
- Since:
- DbUtils 1.1
 
- 
batchpublic int[] batch(Connection conn, String sql, Object[][] params, int[] paramTypes) throws SQLException Execute a batch of SQL INSERT, UPDATE, or DELETE queries.- Parameters:
- conn- The Connection to use to run the query. The caller is responsible for closing this Connection.
- sql- The SQL to execute.
- params- An array of query replacement parameters. Each row in this array is one set of batch replacement values.
- paramTypes- Query replacement parameters types;- nullis a valid value to pass in.
- Returns:
- The number of rows updated per statement.
- Throws:
- SQLException- if a database access error occurs
 
- 
batchExecute a batch of SQL INSERT, UPDATE, or DELETE queries. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust be in auto-commit mode or the update will not be saved.- Parameters:
- sql- The SQL to execute.
- params- An array of query replacement parameters. Each row in this array is one set of batch replacement values.
- Returns:
- The number of rows updated per statement.
- Throws:
- SQLException- if a database access error occurs
- Since:
- DbUtils 1.1
 
- 
batchExecute a batch of SQL INSERT, UPDATE, or DELETE queries. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust be in auto-commit mode or the update will not be saved.- Parameters:
- sql- The SQL to execute.
- params- An array of query replacement parameters. Each row in this array is one set of batch replacement values.
- paramTypes- Query replacement parameters types;- nullis a valid value to pass in.
- Returns:
- The number of rows updated per statement.
- Throws:
- SQLException- if a database access error occurs
 
- 
fillStatementFill thePreparedStatementreplacement parameters with the given objects.- Parameters:
- stmt- PreparedStatement to fill
- params- Query replacement parameters;- nullis a valid value to pass in.
- Throws:
- SQLException- if a database access error occurs
 
- 
fillStatementprotected void fillStatement(PreparedStatement stmt, Object[] params, int[] paramTypes) throws SQLException Fill thePreparedStatementreplacement parameters with the given objects.- Parameters:
- stmt- PreparedStatement to fill
- params- Query replacement parameters;- nullis a valid value to pass in.
- paramTypes- Query replacement parameters types;- nullis a valid value to pass in.
- Throws:
- SQLException- if a database access error occurs
 
- 
getDataSourceReturns theDataSourcethis runner is using.QueryRunnermethods always call this method to get theDataSourceso subclasses can provide specialized behavior.- Returns:
- DataSource the runner is using
 
- 
prepareStatementFactory method that creates and initializes aPreparedStatementobject for the given SQL.QueryRunnermethods always call this method to prepare statements for them. Subclasses can override this method to provide special PreparedStatement configuration if needed. This implementation simply callsconn.prepareStatement(sql).- Parameters:
- conn- The- Connectionused to create the- PreparedStatement
- sql- The SQL statement to prepare.
- Returns:
- An initialized PreparedStatement.
- Throws:
- SQLException- if a database access error occurs
 
- 
prepareConnectionFactory method that creates and initializes aConnectionobject.QueryRunnermethods always call this method to retrieve connections from its DataSource. Subclasses can override this method to provide specialConnectionconfiguration if needed. This implementation simply callsds.getConnection().- Returns:
- An initialized Connection.
- Throws:
- SQLException- if a database access error occurs
- Since:
- DbUtils 1.1
 
- 
querypublic <T> T query(Connection conn, String sql, Object param, ResultSetHandler<T> rsh) throws SQLException Execute an SQL SELECT query with a single replacement parameter. The caller is responsible for closing the connection.- Parameters:
- conn- The connection to execute the query in.
- sql- The query to execute.
- param- The replacement parameter.
- rsh- The handler that converts the results into an object.
- Returns:
- The object returned by the handler.
- Throws:
- SQLException- if a database access error occurs
 
- 
querypublic <T> T query(Connection conn, String sql, Object[] params, ResultSetHandler<T> rsh) throws SQLException Execute an SQL SELECT query with replacement parameters. The caller is responsible for closing the connection.- Parameters:
- conn- The connection to execute the query in.
- sql- The query to execute.
- params- The replacement parameters.
- rsh- The handler that converts the results into an object.
- Returns:
- The object returned by the handler.
- Throws:
- SQLException- if a database access error occurs
 
- 
queryExecute an SQL SELECT query without any replacement parameters. The caller is responsible for closing the connection.- Parameters:
- conn- The connection to execute the query in.
- sql- The query to execute.
- rsh- The handler that converts the results into an object.
- Returns:
- The object returned by the handler.
- Throws:
- SQLException- if a database access error occurs
 
- 
queryExecutes the given SELECT SQL with a single replacement parameter. TheConnectionis retrieved from theDataSourceset in the constructor.- Parameters:
- sql- The SQL statement to execute.
- param- The replacement parameter.
- rsh- The handler used to create the result object from the- ResultSet.
- Returns:
- An object generated by the handler.
- Throws:
- SQLException- if a database access error occurs
 
- 
queryExecutes the given SELECT SQL query and returns a result object. TheConnectionis retrieved from theDataSourceset in the constructor.- Parameters:
- sql- The SQL statement to execute.
- params- Initialize the PreparedStatement's IN parameters with this array.
- rsh- The handler used to create the result object from the- ResultSet.
- Returns:
- An object generated by the handler.
- Throws:
- SQLException- if a database access error occurs
 
- 
queryExecutes the given SELECT SQL without any replacement parameters. TheConnectionis retrieved from theDataSourceset in the constructor.- Parameters:
- sql- The SQL statement to execute.
- rsh- The handler used to create the result object from the- ResultSet.
- Returns:
- An object generated by the handler.
- Throws:
- SQLException- if a database access error occurs
 
- 
rethrowThrows a new exception with a more informative error message.- Parameters:
- cause- The original exception that will be chained to the new exception when it's rethrown.
- sql- The query that was executing when the exception happened.
- params- The query replacement parameters;- nullis a valid value to pass in.
- Throws:
- SQLException- if a database access error occurs
 
- 
setDataSourceSets theDataSourcethis runner will use to get database connections from. This should be called after creating a runner with the default constructor if you intend to use the execute methods without passing in aConnection.- Parameters:
- dataSource- The DataSource to use.
 
- 
updateExecute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.- Parameters:
- conn- The connection to use to run the query.
- sql- The SQL to execute.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
updateExecute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.- Parameters:
- conn- The connection to use to run the query.
- sql- The SQL to execute.
- param- The replacement parameter.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
updateExecute an SQL INSERT, UPDATE, or DELETE query.- Parameters:
- conn- The connection to use to run the query.
- sql- The SQL to execute.
- params- The query replacement parameters.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
updatepublic int update(Connection conn, String sql, Object[] params, int[] paramTypes) throws SQLException Execute an SQL INSERT, UPDATE, or DELETE query.- Parameters:
- conn- The connection to use to run the query.
- sql- The SQL to execute.
- params- The query replacement parameters.
- paramTypes- The query replacement parameters.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
updateExecutes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust be in auto-commit mode or the update will not be saved.- Parameters:
- sql- The SQL statement to execute.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
updateExecutes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust be in auto-commit mode or the update will not be saved.- Parameters:
- sql- The SQL statement to execute.
- param- The replacement parameter.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
updateExecutes the given INSERT, UPDATE, or DELETE SQL statement. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust be in auto-commit mode or the update will not be saved.- Parameters:
- sql- The SQL statement to execute.
- params- Initializes the PreparedStatement's IN (i.e. '?') parameters.
- Returns:
- The number of rows updated.
- Throws:
- SQLException- if a database access error occurs
 
- 
wrapWrap theResultSetin a decorator before processing it. This implementation returns theResultSetit is given without any decoration.Often, the implementation of this method can be done in an anonymous inner class like this: QueryRunner run = new QueryRunner() { protected ResultSet wrap(ResultSet rs) { return StringTrimmedResultSet.wrap(rs); } };- Parameters:
- rs- The- ResultSetto decorate; never- null.
- Returns:
- The ResultSetwrapped in some decorator.
 
- 
closeClose aConnection. This implementation avoids closing if null and does not suppress any exceptions. Subclasses can override to provide special handling like logging.- Parameters:
- conn- Connection to close
- Throws:
- SQLException- if a database access error occurs
- Since:
- DbUtils 1.1
 
- 
closeClose aStatement. This implementation avoids closing if null and does not suppress any exceptions. Subclasses can override to provide special handling like logging.- Parameters:
- stmt- Statement to close
- Throws:
- SQLException- if a database access error occurs
- Since:
- DbUtils 1.1
 
- 
closeClose aResultSet. This implementation avoids closing if null and does not suppress any exceptions. Subclasses can override to provide special handling like logging.- Parameters:
- rs- ResultSet to close
- Throws:
- SQLException- if a database access error occurs
- Since:
- DbUtils 1.1
 
 
-