Package org.eclipse.net4j.db
Class DBUtil
- java.lang.Object
-
- org.eclipse.net4j.db.DBUtil
-
public final class DBUtil extends java.lang.ObjectA utility class with various static factory and convenience methods.- Author:
- Eike Stepper
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceDBUtil.DeserializeRowHandlerArow handlerwith amethodthat is called once per row deserialized withinDBUtil.deserializeTable().static interfaceDBUtil.RowHandlerCall-back interface with amethodthat is called after a number of table rows have been handled by one of the subtypes of this interface.static interfaceDBUtil.RunnableWithConnection<T>static interfaceDBUtil.SerializeRowHandler
-
Field Summary
Fields Modifier and Type Field Description static intMAX_BATCH_SIZEstatic java.lang.StringPROP_ENABLE_NOISY_CLOSEA system property to enable noisy close, i.e.
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static intasInt(java.lang.Object value)static longasLong(java.lang.Object value)static BatchedStatementbatched(java.sql.PreparedStatement delegate, int batchSize)static intclearTable(java.sql.Connection connection, java.lang.String tableName)static intclearTable(java.sql.Connection connection, IDBTable table)static java.lang.Exceptionclose(java.sql.Connection connection)static java.lang.Exceptionclose(java.sql.ResultSet resultSet)static java.lang.Exceptionclose(java.sql.Statement statement)static IDBSchemacopySchema(IDBSchema source)static IDBConnectionProvidercreateConnectionProvider(javax.sql.DataSource dataSource)static IDBConnectionProvider2createConnectionProvider(javax.sql.DataSource dataSource, java.lang.String user)static javax.sql.DataSourcecreateDataSource(java.util.Map<java.lang.Object,java.lang.Object> properties)static javax.sql.DataSourcecreateDataSource(java.util.Map<java.lang.Object,java.lang.Object> properties, java.lang.String namespace)static javax.sql.DataSourcecreateDataSource(java.util.Map<java.lang.Object,java.lang.Object> properties, java.lang.String namespace, java.lang.String driverClassKey)static IDBSchemacreateSchema(java.lang.String name)static voiddeserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, java.sql.Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor)static voiddeserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, java.sql.Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor, DBUtil.DeserializeRowHandler handler)static java.util.List<java.lang.Exception>dropAllTables(java.sql.Connection connection, java.lang.String dbName)static voiddump(IDBNamedElement namedElement)static voiddump(IDBNamedElement namedElement, java.io.Writer writer)static java.lang.StringdumpToString(IDBNamedElement namedElement)static voidexecute(java.sql.Connection connection, java.lang.CharSequence sql)static <T> Texecute(IDBConnectionProvider connectionProvider, DBUtil.RunnableWithConnection<T> runnable)static voidexecuteBatch(java.sql.PreparedStatement stmt, int counter)static voidexecuteBatch(java.sql.PreparedStatement stmt, int counter, boolean checkExactlyOne)static java.util.List<java.lang.String>getAllSchemaNames(java.sql.Connection connection)static java.util.Set<java.lang.String>getAllSchemaNames(java.sql.DatabaseMetaData metaData)static java.util.List<java.lang.String>getAllSchemaTableNames(java.sql.Connection connection)Deprecated.As of 4.2 usegetAllSchemaNames(Connection).static java.util.List<java.lang.String>getAllSchemaTableNames(java.sql.DatabaseMetaData metaData)Deprecated.As of 4.2 usegetAllSchemaNames(DatabaseMetaData).static java.util.List<java.lang.String>getAllTableNames(java.sql.Connection connection, java.lang.String dbName)static IDBAdaptergetDBAdapter(java.lang.String adapterName)Retrieves anadapterfrom theadapter registry.static intgetRowCount(java.sql.Connection connection, java.lang.String tableName)Returns the number of rows contained in the given table.static intgetRowCount(java.sql.ResultSet resultSet)Returns the number of rows contained in the given result set.static booleanisOptional(IDBElement element)static booleanisTracerEnabled()static IDBDatabaseopenDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, java.lang.String schemaName)static IDBDatabaseopenDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, java.lang.String schemaName, boolean fixNullableIndexColumns)static IDBSchemareadSchema(IDBAdapter adapter, java.sql.Connection connection, java.lang.String name)static IDBSchemareadSchema(IDBAdapter adapter, java.sql.Connection connection, java.lang.String name, boolean fixNullableIndexColumns)static voidreadSchema(IDBAdapter adapter, java.sql.Connection connection, IDBSchema schema)static java.lang.ExceptionrollbackSilently(java.sql.Connection connection)static java.lang.Object[]select(java.sql.Connection connection, java.lang.String where, IDBField... fields)static intselect(java.sql.Connection connection, IDBRowHandler rowHandler, java.lang.String where, IDBField... fields)static intselect(java.sql.Connection connection, IDBRowHandler rowHandler, IDBField... fields)static intselectMaximumInt(java.sql.Connection connection, IDBField field, java.lang.String... where)static longselectMaximumLong(java.sql.Connection connection, IDBField field, java.lang.String... where)static intselectMinimumInt(java.sql.Connection connection, IDBField field, java.lang.String... where)static longselectMinimumLong(java.sql.Connection connection, IDBField field, java.lang.String... where)static voidserializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, java.sql.Connection connection, IDBTable table, java.lang.String tableAlias, java.lang.String sqlSuffix)static voidserializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, java.sql.Connection connection, IDBTable table, java.lang.String tableAlias, java.lang.String sqlSuffix, DBUtil.SerializeRowHandler handler)static booleansetAutoCommit(java.sql.Connection connection, boolean autoCommit)static booleansetOptional(IDBElement element, boolean optional)static voidsqlDump(java.sql.Connection conn, java.lang.String sql)Deprecated.Should only be used when debugging.static voidsqlDump(IDBConnectionProvider connectionProvider, java.lang.String sql)Deprecated.Should only be used when debugging.static java.lang.Stringtrace(java.lang.String sql)static intupdate(java.sql.Connection connection, java.lang.String sql)static intupdate(java.sql.PreparedStatement stmt, boolean exactlyOne)Execute update on the given prepared statement and handle common cases of return values.
-
-
-
Field Detail
-
MAX_BATCH_SIZE
public static final int MAX_BATCH_SIZE
- Since:
- 4.2
-
PROP_ENABLE_NOISY_CLOSE
public static final java.lang.String PROP_ENABLE_NOISY_CLOSE
A system property to enable noisy close, i.e. exception catch in close methods are thrown asDBExceptionexception.- Since:
- 4.4
- See Also:
- Constant Field Values
-
-
Method Detail
-
sqlDump
@Deprecated public static void sqlDump(java.sql.Connection conn, java.lang.String sql)Deprecated.Should only be used when debugging.For debugging purposes ONLY!- Since:
- 3.0
-
sqlDump
@Deprecated public static void sqlDump(IDBConnectionProvider connectionProvider, java.lang.String sql)
Deprecated.Should only be used when debugging.For debugging purposes ONLY!- Since:
- 3.0
-
dumpToString
public static java.lang.String dumpToString(IDBNamedElement namedElement)
- Since:
- 4.2
-
dump
public static void dump(IDBNamedElement namedElement)
- Since:
- 4.2
-
dump
public static void dump(IDBNamedElement namedElement, java.io.Writer writer) throws java.io.IOException
- Throws:
java.io.IOException- Since:
- 4.2
-
openDatabase
public static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, java.lang.String schemaName)
- Since:
- 4.2
-
openDatabase
public static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, java.lang.String schemaName, boolean fixNullableIndexColumns)
- Since:
- 4.2
-
createSchema
public static IDBSchema createSchema(java.lang.String name)
-
readSchema
public static void readSchema(IDBAdapter adapter, java.sql.Connection connection, IDBSchema schema)
- Since:
- 4.2
-
readSchema
public static IDBSchema readSchema(IDBAdapter adapter, java.sql.Connection connection, java.lang.String name)
- Since:
- 4.2
-
readSchema
public static IDBSchema readSchema(IDBAdapter adapter, java.sql.Connection connection, java.lang.String name, boolean fixNullableIndexColumns)
- Since:
- 4.2
-
createDataSource
public static javax.sql.DataSource createDataSource(java.util.Map<java.lang.Object,java.lang.Object> properties)
-
createDataSource
public static javax.sql.DataSource createDataSource(java.util.Map<java.lang.Object,java.lang.Object> properties, java.lang.String namespace)
-
createDataSource
public static javax.sql.DataSource createDataSource(java.util.Map<java.lang.Object,java.lang.Object> properties, java.lang.String namespace, java.lang.String driverClassKey)
-
createConnectionProvider
public static IDBConnectionProvider createConnectionProvider(javax.sql.DataSource dataSource)
-
createConnectionProvider
public static IDBConnectionProvider2 createConnectionProvider(javax.sql.DataSource dataSource, java.lang.String user)
- Since:
- 4.3
-
getDBAdapter
public static IDBAdapter getDBAdapter(java.lang.String adapterName)
Retrieves anadapterfrom theadapter registry.If Eclipse is running adapters are automatically created from descriptors that are contributed to the extension point
org.eclipse.net4j.db.dbAdapters.In standalone scenarios the needed adapter instances must be registered with the
adapter registrymanually.
-
batched
public static BatchedStatement batched(java.sql.PreparedStatement delegate, int batchSize) throws DBException
- Throws:
DBException- Since:
- 4.5
-
close
public static java.lang.Exception close(java.sql.ResultSet resultSet)
-
close
public static java.lang.Exception close(java.sql.Statement statement)
-
close
public static java.lang.Exception close(java.sql.Connection connection)
-
isOptional
public static boolean isOptional(IDBElement element)
- Since:
- 4.6
-
setOptional
public static boolean setOptional(IDBElement element, boolean optional)
- Since:
- 4.6
-
setAutoCommit
public static boolean setAutoCommit(java.sql.Connection connection, boolean autoCommit)- Since:
- 4.2
-
rollbackSilently
public static java.lang.Exception rollbackSilently(java.sql.Connection connection)
- Since:
- 4.2
-
getAllSchemaTableNames
@Deprecated public static java.util.List<java.lang.String> getAllSchemaTableNames(java.sql.Connection connection)
Deprecated.As of 4.2 usegetAllSchemaNames(Connection).- Since:
- 3.0
-
getAllSchemaTableNames
@Deprecated public static java.util.List<java.lang.String> getAllSchemaTableNames(java.sql.DatabaseMetaData metaData)
Deprecated.As of 4.2 usegetAllSchemaNames(DatabaseMetaData).- Since:
- 3.0
-
getAllSchemaNames
public static java.util.List<java.lang.String> getAllSchemaNames(java.sql.Connection connection)
- Since:
- 4.2
-
getAllSchemaNames
public static java.util.Set<java.lang.String> getAllSchemaNames(java.sql.DatabaseMetaData metaData)
- Since:
- 4.2
-
getAllTableNames
public static java.util.List<java.lang.String> getAllTableNames(java.sql.Connection connection, java.lang.String dbName)
-
dropAllTables
public static java.util.List<java.lang.Exception> dropAllTables(java.sql.Connection connection, java.lang.String dbName)- Since:
- 4.0
-
asInt
public static int asInt(java.lang.Object value)
- Since:
- 4.2
-
asLong
public static long asLong(java.lang.Object value)
- Since:
- 4.2
-
selectMinimumInt
public static int selectMinimumInt(java.sql.Connection connection, IDBField field, java.lang.String... where) throws DBException- Throws:
DBException- Since:
- 3.0
-
selectMinimumLong
public static long selectMinimumLong(java.sql.Connection connection, IDBField field, java.lang.String... where) throws DBException- Throws:
DBException- Since:
- 3.0
-
selectMaximumInt
public static int selectMaximumInt(java.sql.Connection connection, IDBField field, java.lang.String... where) throws DBException- Throws:
DBException- Since:
- 3.0
-
selectMaximumLong
public static long selectMaximumLong(java.sql.Connection connection, IDBField field, java.lang.String... where) throws DBException- Throws:
DBException- Since:
- 3.0
-
execute
public static <T> T execute(IDBConnectionProvider connectionProvider, DBUtil.RunnableWithConnection<T> runnable)
- Since:
- 4.2
-
execute
public static void execute(java.sql.Connection connection, java.lang.CharSequence sql)- Since:
- 4.2
-
executeBatch
public static void executeBatch(java.sql.PreparedStatement stmt, int counter)- Since:
- 4.1
-
executeBatch
public static void executeBatch(java.sql.PreparedStatement stmt, int counter, boolean checkExactlyOne)- Since:
- 4.1
-
update
public static int update(java.sql.Connection connection, java.lang.String sql)
-
update
public static int update(java.sql.PreparedStatement stmt, boolean exactlyOne) throws java.sql.SQLExceptionExecute update on the given prepared statement and handle common cases of return values.- Parameters:
stmt- the prepared statementexactlyOne- iftrue, the update count is checked to be1. Else the update result is only checked so that the update was successful (i.e. result code != Statement.EXECUTE_FAILED).- Returns:
- the update count / execution result as returned by
PreparedStatement.executeUpdate(). Can be used by the caller to perform more advanced checks. - Throws:
java.sql.SQLException- ifPreparedStatement.executeUpdate()throws it.java.lang.IllegalStateException- if the check indicated byexcatlyOneindicates an error.- Since:
- 4.0
-
clearTable
public static int clearTable(java.sql.Connection connection, IDBTable table)- Since:
- 4.1
-
clearTable
public static int clearTable(java.sql.Connection connection, java.lang.String tableName)- Since:
- 4.1
-
select
public static int select(java.sql.Connection connection, IDBRowHandler rowHandler, java.lang.String where, IDBField... fields) throws DBException- Throws:
DBException
-
select
public static int select(java.sql.Connection connection, IDBRowHandler rowHandler, IDBField... fields) throws DBException- Throws:
DBException
-
select
public static java.lang.Object[] select(java.sql.Connection connection, java.lang.String where, IDBField... fields) throws DBException- Throws:
DBException
-
getRowCount
public static int getRowCount(java.sql.ResultSet resultSet) throws DBExceptionReturns the number of rows contained in the given result set.The
statementof the result set must have been created withTYPE_SCROLL_INSENSITIVE.- Throws:
DBException- Since:
- 4.0
-
getRowCount
public static int getRowCount(java.sql.Connection connection, java.lang.String tableName) throws DBExceptionReturns the number of rows contained in the given table.- Throws:
DBException- Since:
- 4.5
-
serializeTable
public static void serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, java.sql.Connection connection, IDBTable table, java.lang.String tableAlias, java.lang.String sqlSuffix) throws DBException, java.io.IOException- Throws:
DBExceptionjava.io.IOException- Since:
- 3.0
-
serializeTable
public static void serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, java.sql.Connection connection, IDBTable table, java.lang.String tableAlias, java.lang.String sqlSuffix, DBUtil.SerializeRowHandler handler) throws DBException, java.io.IOException- Throws:
DBExceptionjava.io.IOException- Since:
- 4.1
-
deserializeTable
public static void deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, java.sql.Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) throws java.io.IOException- Throws:
java.io.IOException- Since:
- 4.0
-
deserializeTable
public static void deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, java.sql.Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor, DBUtil.DeserializeRowHandler handler) throws java.io.IOException- Throws:
java.io.IOException- Since:
- 4.1
-
trace
public static java.lang.String trace(java.lang.String sql)
- Since:
- 3.0
-
isTracerEnabled
public static boolean isTracerEnabled()
- Since:
- 4.2
-
-