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
Modifier and TypeClassDescriptionstatic interface
Arow handler
with amethod
that is called once per row deserialized withinDBUtil.deserializeTable()
.static interface
Call-back interface with amethod
that is called after a number of table rows have been handled by one of the subtypes of this interface.static interface
static interface
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic int
static long
static BatchedStatement
batched
(PreparedStatement delegate, int batchSize) static int
clearTable
(Connection connection, String tableName) static int
clearTable
(Connection connection, IDBTable table) static Exception
close
(Connection connection) static Exception
static Exception
static boolean
containsName
(Set<String> names, String name, boolean caseSensitive) static IDBSchema
copySchema
(IDBSchema source) static IDBConnectionProvider
createConnectionProvider
(DataSource dataSource) static IDBConnectionProvider2
createConnectionProvider
(DataSource dataSource, String user) static DataSource
createDataSource
(Map<Object, Object> properties) static DataSource
createDataSource
(Map<Object, Object> properties, String namespace) static DataSource
static IDBSchema
createSchema
(String name) Creates a case-insensitive schema with the givenname
.static IDBSchema
createSchema
(String name, boolean caseSensitive, boolean qualifiedTableNames) static void
deserializeTable
(org.eclipse.net4j.util.io.ExtendedDataInput in, Connection connection, IDBTable table, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) 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) dropAllTables
(Connection connection, String schemaName) dropAllTables
(Connection connection, String schemaName, boolean caseSensitive) static void
dump
(IDBNamedElement namedElement) static void
dump
(IDBNamedElement namedElement, Writer writer) static String
dumpToString
(IDBNamedElement namedElement) static boolean
equalNames
(String name1, String name2, boolean caseSensitive) static void
execute
(Connection connection, CharSequence sql) static <T> T
execute
(IDBConnectionProvider connectionProvider, DBUtil.RunnableWithConnection<T> runnable) static void
executeBatch
(PreparedStatement stmt, int counter) static void
executeBatch
(PreparedStatement stmt, int counter, boolean checkExactlyOne) static void
forEachTable
(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 IDBAdapter
getDBAdapter
(String adapterName) Retrieves anadapter
from theadapter registry
.static int
getRowCount
(Connection connection, String tableName) Returns the number of rows contained in the given table.static int
getRowCount
(ResultSet resultSet) Returns the number of rows contained in the given result set.static boolean
isOptional
(IDBElement element) static boolean
static String
static String
static String
static IDBDatabase
openDatabase
(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName) static IDBDatabase
openDatabase
(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns) static IDBDatabase
openDatabase
(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns, boolean qualifiedTableNames) static String
static IDBSchema
readSchema
(IDBAdapter adapter, Connection connection, String name) static IDBSchema
readSchema
(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns) static IDBSchema
readSchema
(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns, boolean qualifiedTableNames) static void
readSchema
(IDBAdapter adapter, Connection connection, IDBSchema schema) static Exception
rollbackSilently
(Connection connection) static Object[]
select
(Connection connection, String where, IDBField... fields) static int
select
(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields) static int
select
(Connection connection, IDBRowHandler rowHandler, IDBField... fields) static int
selectMaximumInt
(Connection connection, IDBField field, String... where) static long
selectMaximumLong
(Connection connection, IDBField field, String... where) static int
selectMinimumInt
(Connection connection, IDBField field, String... where) static long
selectMinimumLong
(Connection connection, IDBField field, String... where) static void
serializeTable
(org.eclipse.net4j.util.io.ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix) static void
serializeTable
(org.eclipse.net4j.util.io.ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix, DBUtil.SerializeRowHandler handler) static boolean
setAutoCommit
(Connection connection, boolean autoCommit) static boolean
setOptional
(IDBElement element, boolean optional) static void
sqlDump
(Connection conn, String sql) Deprecated.Should only be used when debugging.static void
sqlDump
(IDBConnectionProvider connectionProvider, String sql) Deprecated.Should only be used when debugging.static String
static int
update
(Connection connection, String sql) static int
update
(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 asDBException
exception.- 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 anadapter
from 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 registry
manually. -
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 byexcatlyOne
indicates 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
statement
of 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:
DBException
IOException
- 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:
DBException
IOException
- 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)
.