Package org.eclipse.net4j.db
Class DBUtil
java.lang.Object
org.eclipse.net4j.db.DBUtil
A utility class with various static factory and convenience methods.
- Author:
- Eike Stepper
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceArow handlerwith amethodthat is called once per row deserialized withinDBUtil.deserializeTable().static interfaceCall-back interface with amethodthat is called after a number of table rows have been handled by one of the subtypes of this interface.static interfacestatic interface -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic intstatic longstatic BatchedStatementbatched(PreparedStatement delegate, int batchSize) static intclearTable(Connection connection, String tableName) static intclearTable(Connection connection, IDBTable table) static Exceptionclose(Connection connection) static Exceptionstatic Exceptionstatic booleancontainsName(Set<String> names, String name, boolean caseSensitive) static IDBSchemacopySchema(IDBSchema source) static IDBConnectionProvidercreateConnectionProvider(DataSource dataSource) static IDBConnectionProvider2createConnectionProvider(DataSource dataSource, String user) static DataSourcecreateDataSource(Map<Object, Object> properties) static DataSourcecreateDataSource(Map<Object, Object> properties, String namespace) static DataSourcestatic IDBSchemacreateSchema(String name) Creates a case-insensitive schema with the givenname.static IDBSchemacreateSchema(String name, boolean caseSensitive, boolean qualifiedTableNames) static voiddeserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) static voiddeserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor, DBUtil.DeserializeRowHandler handler) dropAllTables(Connection connection, String schemaName) dropAllTables(Connection connection, String schemaName, boolean caseSensitive) static voiddump(IDBNamedElement namedElement) static voiddump(IDBNamedElement namedElement, Writer writer) static StringdumpToString(IDBNamedElement namedElement) static booleanequalNames(String name1, String name2, boolean caseSensitive) static voidexecute(Connection connection, CharSequence sql) static <T> Texecute(IDBConnectionProvider connectionProvider, DBUtil.RunnableWithConnection<T> runnable) static voidexecuteBatch(PreparedStatement stmt, int counter) static voidexecuteBatch(PreparedStatement stmt, int counter, boolean checkExactlyOne) static voidforEachTable(Connection connection, String schemaName, boolean caseSensitive, org.eclipse.net4j.util.ConsumerWithException<String, SQLException> tableNameConsumer) getAllSchemaNames(Connection connection) getAllSchemaNames(DatabaseMetaData metaData) getAllSchemaTableNames(Connection connection) Deprecated.getAllSchemaTableNames(DatabaseMetaData metaData) Deprecated.As of 4.2 usegetAllSchemaNames(DatabaseMetaData).getAllTableNames(Connection connection, String schemaName) getAllTableNames(Connection connection, String schemaName, boolean caseSensitive) static IDBAdaptergetDBAdapter(String adapterName) Retrieves anadapterfrom theadapter registry.static intgetRowCount(Connection connection, String tableName) Returns the number of rows contained in the given table.static intgetRowCount(ResultSet resultSet) Returns the number of rows contained in the given result set.static booleanisOptional(IDBElement element) static booleanstatic Stringstatic Stringstatic Stringstatic IDBDatabaseopenDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName) static IDBDatabaseopenDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns) static IDBDatabaseopenDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns, boolean qualifiedTableNames) static Stringstatic IDBSchemareadSchema(IDBAdapter adapter, Connection connection, String name) static IDBSchemareadSchema(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns) static IDBSchemareadSchema(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns, boolean qualifiedTableNames) static voidreadSchema(IDBAdapter adapter, Connection connection, IDBSchema schema) static ExceptionrollbackSilently(Connection connection) static Object[]select(Connection connection, String where, IDBField... fields) static intselect(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields) static intselect(Connection connection, IDBRowHandler rowHandler, IDBField... fields) static intselectMaximumInt(Connection connection, IDBField field, String... where) static longselectMaximumLong(Connection connection, IDBField field, String... where) static intselectMinimumInt(Connection connection, IDBField field, String... where) static longselectMinimumLong(Connection connection, IDBField field, String... where) static voidserializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix) static voidserializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix, DBUtil.SerializeRowHandler handler) static booleansetAutoCommit(Connection connection, boolean autoCommit) static booleansetOptional(IDBElement element, boolean optional) static voidsqlDump(Connection conn, String sql) Deprecated.Should only be used when debugging.static voidsqlDump(IDBConnectionProvider connectionProvider, String sql) Deprecated.Should only be used when debugging.static Stringstatic intupdate(Connection connection, String sql) static intupdate(PreparedStatement stmt, boolean exactlyOne) Execute update on the given prepared statement and handle common cases of return values.
-
Field Details
-
QUOTE
- Since:
- 4.12
- See Also:
-
MAX_BATCH_SIZE
public static final int MAX_BATCH_SIZE- Since:
- 4.2
-
DISABLE_QUOTED_NAMES
public static final boolean DISABLE_QUOTED_NAMES- Since:
- 4.12
-
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:
-
ALL_TABLE_NAME_TYPES
- Since:
- 4.12
-
-
Method Details
-
dumpToString
- Since:
- 4.2
-
dump
- Since:
- 4.2
-
dump
- Throws:
IOException- Since:
- 4.2
-
openDatabase
public static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName) - Since:
- 4.2
-
openDatabase
public static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns) - Since:
- 4.2
-
openDatabase
public static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns, boolean qualifiedTableNames) - Since:
- 4.12
-
createSchema
Creates a case-insensitive schema with the givenname. -
createSchema
public static IDBSchema createSchema(String name, boolean caseSensitive, boolean qualifiedTableNames) - Since:
- 4.12
-
readSchema
- Since:
- 4.2
-
readSchema
- Since:
- 4.2
-
readSchema
public static IDBSchema readSchema(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns) - Since:
- 4.2
-
readSchema
public static IDBSchema readSchema(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns, boolean qualifiedTableNames) - Since:
- 4.12
-
copySchema
- Since:
- 4.2
-
createDataSource
-
createDataSource
-
createDataSource
-
createConnectionProvider
-
createConnectionProvider
- Since:
- 4.3
-
getDBAdapter
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(PreparedStatement delegate, int batchSize) throws DBException - Throws:
DBException- Since:
- 4.5
-
close
-
close
-
close
-
isOptional
- Since:
- 4.6
-
setOptional
- Since:
- 4.6
-
setAutoCommit
- Since:
- 4.2
-
rollbackSilently
- Since:
- 4.2
-
quoted
- Since:
- 4.12
-
name
- Since:
- 4.12
-
name
- Since:
- 4.12
-
name
- Since:
- 4.12
-
equalNames
- Since:
- 4.12
-
containsName
- Since:
- 4.12
-
getAllSchemaNames
- Since:
- 4.2
-
getAllSchemaNames
- Since:
- 4.2
-
getAllTableNames
-
getAllTableNames
public static List<String> getAllTableNames(Connection connection, String schemaName, boolean caseSensitive) - Since:
- 4.12
-
forEachTable
public static void forEachTable(Connection connection, String schemaName, boolean caseSensitive, org.eclipse.net4j.util.ConsumerWithException<String, SQLException> tableNameConsumer) - Since:
- 4.12
-
dropAllTables
- Since:
- 4.0
-
dropAllTables
public static List<Exception> dropAllTables(Connection connection, String schemaName, boolean caseSensitive) - Since:
- 4.12
-
asInt
- Since:
- 4.2
-
asLong
- Since:
- 4.2
-
selectMinimumInt
public static int selectMinimumInt(Connection connection, IDBField field, String... where) throws DBException - Throws:
DBException- Since:
- 3.0
-
selectMinimumLong
public static long selectMinimumLong(Connection connection, IDBField field, String... where) throws DBException - Throws:
DBException- Since:
- 3.0
-
selectMaximumInt
public static int selectMaximumInt(Connection connection, IDBField field, String... where) throws DBException - Throws:
DBException- Since:
- 3.0
-
selectMaximumLong
public static long selectMaximumLong(Connection connection, IDBField field, 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
- Since:
- 4.2
-
executeBatch
- Since:
- 4.1
-
executeBatch
- Since:
- 4.1
-
update
-
update
Execute 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:
SQLException- ifPreparedStatement.executeUpdate()throws it.IllegalStateException- if the check indicated byexcatlyOneindicates an error.- Since:
- 4.0
-
clearTable
- Since:
- 4.1
-
clearTable
- Since:
- 4.1
-
select
public static int select(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields) throws DBException - Throws:
DBException
-
select
public static int select(Connection connection, IDBRowHandler rowHandler, IDBField... fields) throws DBException - Throws:
DBException
-
select
public static Object[] select(Connection connection, String where, IDBField... fields) throws DBException - Throws:
DBException
-
getRowCount
Returns 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
Returns 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, Connection connection, IDBTable table, String tableAlias, String sqlSuffix) throws DBException, IOException - Throws:
DBExceptionIOException- Since:
- 3.0
-
serializeTable
public static void serializeTable(org.eclipse.net4j.util.io.ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix, DBUtil.SerializeRowHandler handler) throws DBException, IOException - Throws:
DBExceptionIOException- Since:
- 4.1
-
deserializeTable
public static void deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) throws IOException - Throws:
IOException- Since:
- 4.0
-
deserializeTable
public static void deserializeTable(org.eclipse.net4j.util.io.ExtendedDataInput in, Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor, DBUtil.DeserializeRowHandler handler) throws IOException - Throws:
IOException- Since:
- 4.1
-
trace
- Since:
- 3.0
-
isTracerEnabled
public static boolean isTracerEnabled()- Since:
- 4.2
-
sqlDump
Deprecated.Should only be used when debugging.For debugging purposes ONLY!- Since:
- 3.0
-
sqlDump
Deprecated.Should only be used when debugging.For debugging purposes ONLY!- Since:
- 3.0
-
getAllSchemaTableNames
Deprecated.As of 4.2 usegetAllSchemaNames(Connection).- Since:
- 3.0
-
getAllSchemaTableNames
Deprecated.As of 4.2 usegetAllSchemaNames(DatabaseMetaData).- Since:
- 3.0
-
getAllSchemaNames(Connection).