| java.lang.Object net.sourceforge.squirrel_sql.fw.sql.SQLUtilities
SQLUtilities | public class SQLUtilities (Code) | | |
Method Summary | |
public static void | closeResultSet(ResultSet rs) Closes the specified ResultSet safely (with no exceptions) and logs a
debug message if SQLException is encountered. | public static void | closeResultSet(ResultSet rs, boolean closeStatement) Closes the specified ResultSet safely (with no exceptions) and logs a
debug message if SQLException is encountered. | public static void | closeStatement(Statement stmt) Closes the specified Statement safely (with no exceptions) and logs a
debug message if SQLException is encountered. | public static List<ITableInfo> | getDeletionOrder(List<ITableInfo> tables, SQLDatabaseMetaData md, ProgressCallBack callback) Reverses the insertion order list. | public static ForeignKeyInfo[] | getExportedKeys(ITableInfo ti, SQLDatabaseMetaData md) | public static List<String> | getExtFKChildren(SQLDatabaseMetaData md, List<ITableInfo> tables) Returns a list of table names that have Foreign keys that reference
Primary Keys in the specified List of tables, but that are not also
contained in the list of tables. | public static List<String> | getExtFKParents(SQLDatabaseMetaData md, List<ITableInfo> tables) | public static ForeignKeyInfo[] | getImportedKeys(ITableInfo ti, SQLDatabaseMetaData md) | public static List<ITableInfo> | getInsertionOrder(List<ITableInfo> tables, SQLDatabaseMetaData md, ProgressCallBack callback) Returns the specified list of tables in an order such that insertions into
all tables will satisfy any foreign key constraints. | public static String | quoteIdentifier(String s) Contributed by Thomas Mueller to handle doubling quote characters
found in an identifier. |
closeResultSet | public static void closeResultSet(ResultSet rs)(Code) | | Closes the specified ResultSet safely (with no exceptions) and logs a
debug message if SQLException is encountered. This will not close the
Statement that created the ResultSet.
Parameters: rs - the ResultSet to close - it can be null. |
closeResultSet | public static void closeResultSet(ResultSet rs, boolean closeStatement)(Code) | | Closes the specified ResultSet safely (with no exceptions) and logs a
debug message if SQLException is encountered. This will also close the
Statement that created the ResultSet if closeStatement boolean is true.
Parameters: rs - the ResultSet to close - it can be null. Parameters: closeStatement - if true, will close the Statement that created thisResultSet; false - will not close the Statement. |
closeStatement | public static void closeStatement(Statement stmt)(Code) | | Closes the specified Statement safely (with no exceptions) and logs a
debug message if SQLException is encountered.
Parameters: stmt - the Statement to close - it can be null. |
getExtFKParents | public static List<String> getExtFKParents(SQLDatabaseMetaData md, List<ITableInfo> tables) throws SQLException(Code) | | Returns a list of table names that have Primary Keys that are referenced by
foreign key constraints on columns in the specified list of tables, that
are not also contained in the specified list
Parameters: md - Parameters: tables - throws: SQLException - |
getInsertionOrder | public static List<ITableInfo> getInsertionOrder(List<ITableInfo> tables, SQLDatabaseMetaData md, ProgressCallBack callback) throws SQLException(Code) | | Returns the specified list of tables in an order such that insertions into
all tables will satisfy any foreign key constraints. This will not
correctly handle recursive constraints.
This algorthim was adapted from SchemaSpy class/method:
net.sourceforge.schemaspy.SchemaSpy.sortTablesByRI()
unattached - tables that have no dependencies on other tables
parents - tables that only have children
children - tables that only have parents
sandwiches - tables that have both parents and children - as in the
"sandwich" generation.
The first SQLException encountered while attempting to get FK information
on any table will cause this to bail it's effort to re-order the list and
the list will be returned as it came in - there's no point in spewing
exceptions to end up with a flawed result; just give up.
Parameters: md - Parameters: tables - Parameters: listener - throws: SQLException - |
quoteIdentifier | public static String quoteIdentifier(String s)(Code) | | Contributed by Thomas Mueller to handle doubling quote characters
found in an identifier. In H2 and other dbs, the following statement
creates a table with an embedded quote character:
CREATE TABLE "foo""bar" (someid int);
However, what is returned by the driver for table name is:
foo"bar
The reason is simple. Just like embedded quotes in SQL strings, such as:
select 'I don''t know' from test
Similarly, embedded quote characters can also appear in identifiers
such as table names, by doubling (or quoting, if you will) the quote.
Parameters: s - the string to have embedded quotes expanded. a new string with any embedded quotes doubled, or null if null ispassed. |
|
|