org.eclipse.net4j.db
Class DBUtil

java.lang.Object
  extended by org.eclipse.net4j.db.DBUtil

public final class DBUtil
extends Object

A utility class with various static factory and convenience methods.


Nested Class Summary
static interface DBUtil.DeserializeRowHandler
          A row handler with a method that is called once per row deserialized within DBUtil.deserializeTable().
static interface DBUtil.RowHandler
          Call-back interface with a method that is called after a number of table rows have been handled by one of the subtypes of this interface.
static interface DBUtil.RunnableWithConnection<T>
           
static interface DBUtil.SerializeRowHandler
          A row handler with a method that is called once per row serialized within DBUtil.serializeTable().
 
Field Summary
static int MAX_BATCH_SIZE
           
 
Method Summary
static int asInt(Object value)
           
static long asLong(Object value)
           
static int clearTable(Connection connection, IDBTable table)
           
static int clearTable(Connection connection, String tableName)
           
static Exception close(Connection connection)
           
static Exception close(ResultSet resultSet)
           
static Exception close(Statement statement)
           
static IDBSchema copySchema(IDBSchema source)
           
static IDBConnectionProvider createConnectionProvider(DataSource dataSource)
           
static DataSource createDataSource(Map<Object,Object> properties)
           
static DataSource createDataSource(Map<Object,Object> properties, String namespace)
           
static DataSource createDataSource(Map<Object,Object> properties, String namespace, String driverClassKey)
           
static IDBSchema createSchema(String name)
           
static void deserializeTable(ExtendedDataInput in, Connection connection, IDBTable table, OMMonitor monitor)
           
static void deserializeTable(ExtendedDataInput in, Connection connection, IDBTable table, OMMonitor monitor, DBUtil.DeserializeRowHandler handler)
           
static List<Exception> dropAllTables(Connection connection, String dbName)
           
static void dump(IDBNamedElement namedElement)
           
static void dump(IDBNamedElement namedElement, Writer writer)
           
static String dumpToString(IDBNamedElement namedElement)
           
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 List<String> getAllSchemaNames(Connection connection)
           
static Set<String> getAllSchemaNames(DatabaseMetaData metaData)
           
static List<String> getAllSchemaTableNames(Connection connection)
          Deprecated. As of 4.2 use getAllSchemaNames(Connection).
static List<String> getAllSchemaTableNames(DatabaseMetaData metaData)
          Deprecated. As of 4.2 use getAllSchemaNames(DatabaseMetaData).
static List<String> getAllTableNames(Connection connection, String dbName)
           
static IDBAdapter getDBAdapter(String adapterName)
          Retrieves an adapter from the adapter registry.
static int getRowCount(ResultSet resultSet)
          Returns the number of rows contained in the given result set.
static boolean isTracerEnabled()
           
static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName)
           
static IDBDatabase openDatabase(IDBAdapter adapter, IDBConnectionProvider connectionProvider, String schemaName, boolean fixNullableIndexColumns)
           
static void readSchema(IDBAdapter adapter, Connection connection, IDBSchema schema)
           
static IDBSchema readSchema(IDBAdapter adapter, Connection connection, String name)
           
static IDBSchema readSchema(IDBAdapter adapter, Connection connection, String name, boolean fixNullableIndexColumns)
           
static Exception rollbackSilently(Connection connection)
           
static int select(Connection connection, IDBRowHandler rowHandler, IDBField... fields)
           
static int select(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields)
           
static Object[] select(Connection connection, String where, 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(ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix)
           
static void serializeTable(ExtendedDataOutput out, Connection connection, IDBTable table, String tableAlias, String sqlSuffix, DBUtil.SerializeRowHandler handler)
           
static boolean setAutoCommit(Connection connection, boolean autoCommit)
           
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 trace(String sql)
           
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_BATCH_SIZE

public static final int MAX_BATCH_SIZE
Since:
4.2
Method Detail

sqlDump

@Deprecated
public static void sqlDump(Connection conn,
                                      String sql)
Deprecated. Should only be used when debugging.

For debugging purposes ONLY!

Since:
3.0

sqlDump

@Deprecated
public static void sqlDump(IDBConnectionProvider connectionProvider,
                                      String sql)
Deprecated. Should only be used when debugging.

For debugging purposes ONLY!

Since:
3.0

dumpToString

public static String dumpToString(IDBNamedElement namedElement)
Since:
4.2

dump

public static void dump(IDBNamedElement namedElement)
Since:
4.2

dump

public static void dump(IDBNamedElement namedElement,
                        Writer writer)
                 throws IOException
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

createSchema

public static IDBSchema createSchema(String name)

readSchema

public static void readSchema(IDBAdapter adapter,
                              Connection connection,
                              IDBSchema schema)
Since:
4.2

readSchema

public static IDBSchema readSchema(IDBAdapter adapter,
                                   Connection connection,
                                   String name)
Since:
4.2

readSchema

public static IDBSchema readSchema(IDBAdapter adapter,
                                   Connection connection,
                                   String name,
                                   boolean fixNullableIndexColumns)
Since:
4.2

copySchema

public static IDBSchema copySchema(IDBSchema source)
Since:
4.2

createDataSource

public static DataSource createDataSource(Map<Object,Object> properties)

createDataSource

public static DataSource createDataSource(Map<Object,Object> properties,
                                          String namespace)

createDataSource

public static DataSource createDataSource(Map<Object,Object> properties,
                                          String namespace,
                                          String driverClassKey)

createConnectionProvider

public static IDBConnectionProvider createConnectionProvider(DataSource dataSource)

getDBAdapter

public static IDBAdapter getDBAdapter(String adapterName)
Retrieves an adapter from the adapter 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.


close

public static Exception close(ResultSet resultSet)

close

public static Exception close(Statement statement)

close

public static Exception close(Connection connection)

setAutoCommit

public static boolean setAutoCommit(Connection connection,
                                    boolean autoCommit)
Since:
4.2

rollbackSilently

public static Exception rollbackSilently(Connection connection)
Since:
4.2

getAllSchemaTableNames

@Deprecated
public static List<String> getAllSchemaTableNames(Connection connection)
Deprecated. As of 4.2 use getAllSchemaNames(Connection).

Since:
3.0

getAllSchemaTableNames

@Deprecated
public static List<String> getAllSchemaTableNames(DatabaseMetaData metaData)
Deprecated. As of 4.2 use getAllSchemaNames(DatabaseMetaData).

Since:
3.0

getAllSchemaNames

public static List<String> getAllSchemaNames(Connection connection)
Since:
4.2

getAllSchemaNames

public static Set<String> getAllSchemaNames(DatabaseMetaData metaData)
Since:
4.2

getAllTableNames

public static List<String> getAllTableNames(Connection connection,
                                            String dbName)

dropAllTables

public static List<Exception> dropAllTables(Connection connection,
                                            String dbName)
Since:
4.0

asInt

public static int asInt(Object value)
Since:
4.2

asLong

public static long asLong(Object value)
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

public static void execute(Connection connection,
                           CharSequence sql)
Since:
4.2

executeBatch

public static void executeBatch(PreparedStatement stmt,
                                int counter)
Since:
4.1

executeBatch

public static void executeBatch(PreparedStatement stmt,
                                int counter,
                                boolean checkExactlyOne)
Since:
4.1

update

public static int update(Connection connection,
                         String sql)

update

public static int update(PreparedStatement stmt,
                         boolean exactlyOne)
                  throws SQLException
Execute update on the given prepared statement and handle common cases of return values.

Parameters:
stmt - the prepared statement
exactlyOne - if true, the update count is checked to be 1. 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 - if PreparedStatement.executeUpdate() throws it.
IllegalStateException - if the check indicated by excatlyOne indicates an error.
Since:
4.0

clearTable

public static int clearTable(Connection connection,
                             IDBTable table)
Since:
4.1

clearTable

public static int clearTable(Connection connection,
                             String tableName)
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

public static int getRowCount(ResultSet resultSet)
                       throws DBException
Returns the number of rows contained in the given result set.

The statement of the result set must have been created with TYPE_SCROLL_INSENSITIVE.

Throws:
DBException
Since:
4.0

serializeTable

public static void serializeTable(ExtendedDataOutput out,
                                  Connection connection,
                                  IDBTable table,
                                  String tableAlias,
                                  String sqlSuffix)
                           throws DBException,
                                  IOException
Throws:
DBException
IOException
Since:
3.0

serializeTable

public static void serializeTable(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(ExtendedDataInput in,
                                    Connection connection,
                                    IDBTable table,
                                    OMMonitor monitor)
                             throws IOException
Throws:
IOException
Since:
4.0

deserializeTable

public static void deserializeTable(ExtendedDataInput in,
                                    Connection connection,
                                    IDBTable table,
                                    OMMonitor monitor,
                                    DBUtil.DeserializeRowHandler handler)
                             throws IOException
Throws:
IOException
Since:
4.1

trace

public static String trace(String sql)
Since:
3.0

isTracerEnabled

public static boolean isTracerEnabled()
Since:
4.2


Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.