liquibase.util
Class JdbcUtils

java.lang.Object
  extended by liquibase.util.JdbcUtils

public abstract class JdbcUtils
extends Object


Field Summary
static int TYPE_UNKNOWN
          Constant that indicates an unknown (or unspecified) SQL type.
 
Constructor Summary
JdbcUtils()
           
 
Method Summary
static void closeResultSet(ResultSet rs)
          Close the given JDBC ResultSet and ignore any thrown exception.
static void closeStatement(Statement stmt)
          Close the given JDBC Statement and ignore any thrown exception.
static Object getResultSetValue(ResultSet rs, int index)
          Retrieve a JDBC column value from a ResultSet, using the most appropriate value type.
static boolean isNumeric(int sqlType)
          Check whether the given SQL type is numeric.
static Object requiredSingleResult(Collection results)
          Return a single result object from the given Collection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TYPE_UNKNOWN

public static final int TYPE_UNKNOWN
Constant that indicates an unknown (or unspecified) SQL type.

See Also:
Types, Constant Field Values
Constructor Detail

JdbcUtils

public JdbcUtils()
Method Detail

closeStatement

public static void closeStatement(Statement stmt)
Close the given JDBC Statement and ignore any thrown exception. This is useful for typical finally blocks in manual JDBC code.

Parameters:
stmt - the JDBC Statement to close (may be null)

closeResultSet

public static void closeResultSet(ResultSet rs)
Close the given JDBC ResultSet and ignore any thrown exception. This is useful for typical finally blocks in manual JDBC code.

Parameters:
rs - the JDBC ResultSet to close (may be null)

getResultSetValue

public static Object getResultSetValue(ResultSet rs,
                                       int index)
                                throws SQLException
Retrieve a JDBC column value from a ResultSet, using the most appropriate value type. The returned value should be a detached value object, not having any ties to the active ResultSet: in particular, it should not be a Blob or Clob object but rather a byte array respectively String representation.

Uses the getObject(index) method, but includes additional "hacks" to get around Oracle 10g returning a non-standard object for its TIMESTAMP datatype and a java.sql.Date for DATE columns leaving out the time portion: These columns will explicitly be extracted as standard java.sql.Timestamp object.

Parameters:
rs - is the ResultSet holding the data
index - is the column index
Returns:
the value object
Throws:
SQLException - if thrown by the JDBC API
See Also:
Blob, Clob, Timestamp

isNumeric

public static boolean isNumeric(int sqlType)
Check whether the given SQL type is numeric.

Parameters:
sqlType - the SQL type to be checked
Returns:
whether the type is numeric

requiredSingleResult

public static Object requiredSingleResult(Collection results)
                                   throws DatabaseException
Return a single result object from the given Collection.

Throws an exception if 0 or more than 1 element found.

Parameters:
results - the result Collection (can be null)
Returns:
the single result object
Throws:
DatabaseException


Copyright © 2012 Liquibase.org. All Rights Reserved.