Class DBUtil


  • public final class DBUtil
    extends java.lang.Object
    A utility class with various static factory and convenience methods.
    Author:
    Eike Stepper
    • 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 as DBException exception.
        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
      • 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 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 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.
        Since:
        3.0
      • getAllSchemaTableNames

        @Deprecated
        public static java.util.List<java.lang.String> getAllSchemaTableNames​(java.sql.DatabaseMetaData metaData)
        Deprecated.
        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 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.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:
        java.sql.SQLException - if PreparedStatement.executeUpdate() throws it.
        java.lang.IllegalStateException - if the check indicated by excatlyOne indicates 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 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 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
      • getRowCount

        public static int getRowCount​(java.sql.Connection connection,
                                      java.lang.String tableName)
                               throws DBException
        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,
                                          java.sql.Connection connection,
                                          IDBTable table,
                                          java.lang.String tableAlias,
                                          java.lang.String sqlSuffix)
                                   throws DBException,
                                          java.io.IOException
        Throws:
        DBException
        java.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:
        DBException
        java.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