?? databaseconnection.java
字號:
package com.sutternow.data;import java.sql.*;import java.util.*;/** * Title: JDBCExplorer * Description: * Company: * @author Matthew Payne * @version 2.0 */public class DatabaseConnection { private boolean connected = false; private Connection conn = null; private DatabaseMetaData mtdt = null; private static DatabaseConnection instance; public DatabaseConnection() { instance = this; } public DatabaseConnection(String url, String driver, String login, String password) throws Exception { instance = this; connect(url, driver, login, password); } public static void main(String[] args) throws Exception { DatabaseConnection databaseConnection1 = new DatabaseConnection(args[0], args[1], args[2], args[3]); databaseConnection1.test(); } public void connect(String url, String driver, String login, String password) throws Exception { Class.forName(driver); conn = DriverManager.getConnection(url, login, password); if (conn != null) { connected = true; } } public Connection getLiveConnection(String url, String driver, String login, String password) throws Exception { Class.forName(driver); Connection cn = DriverManager.getConnection(url, login, password); return cn; } public void disconnect() { try { conn.close(); connected = false; mtdt = null; conn = null; } catch (Exception e) { } } public static String testConectionInfo(String className, String dbURL, String user, String pass) { String response; if (user == null || user.length() < 1) { response = "username missing"; return response; } if (className == null || className.length() < 5) { response = "className missing or invalid"; return response; } if (dbURL == null || dbURL.length() < 5) { response = "URL missing or invalid"; return response; } try { // Load the jdbc-odbc bridge driver Class.forName(className); // Enable logging //DriverManager.setLogStream(System.err); System.out.println("Getting Connection"); Connection conn = DriverManager.getConnection(dbURL, user, pass); // user, passwd // If a SQLWarning object is available, print its // warning(s). There may be multiple warnings chained. SQLWarning warn = conn.getWarnings(); while (warn != null) { System.out.println("SQLState: " + warn.getSQLState()); System.out.println("Message: " + warn.getMessage()); System.out.println("Vendor: " + warn.getErrorCode()); System.out.println(""); warn = warn.getNextWarning(); } // Process the connection here... conn.close(); // All done with that DB connection response = "Connection Successfull"; } catch (ClassNotFoundException e) { System.out.println("Can't load driver " + e); response = "Unable to load Database Class."; } catch (SQLException e) { System.out.println("Database access failed " + e); response = "Unable to connect to database server."; } return response; } public static DatabaseConnection getInstance() { return instance; } public boolean isActive() { return connected; } public String[][] getSession() throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[][] s = new String[3][2]; s[0] = setString2("Property", "Value"); s[1] = setString2("URL in use", mtdt.getURL()); s[2] = setString2("Username", mtdt.getUserName()); mtdt = null; return s; } public String[][] getEngineInfo() throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[][] s = new String[5][2]; s[0] = setString2("Property", "Value"); s[1] = setString2("Database name", mtdt.getDatabaseProductName()); s[2] = setString2("Database version", mtdt.getDatabaseProductVersion()); s[3] = setString2("Driver name", mtdt.getDriverName()); s[4] = setString2("Driver version", mtdt.getDriverVersion()); mtdt = null; return s; } public String[][] getEngineSpecs() throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[][] s = new String[13][2]; s[0] = setString2("Property", "Value"); s[1] = setString2("Uses local files", mtdt.usesLocalFiles()); s[2] = setString2("Uses local file per table", mtdt.usesLocalFilePerTable()); s[3] = setString2("Nulls are sorted high", mtdt.nullsAreSortedHigh()); s[4] = setString2("Nulls are sorted at end", mtdt.nullsAreSortedAtEnd()); s[5] = setString2("Supports mixed case identifiers", mtdt.supportsMixedCaseIdentifiers()); s[6] = setString2("Stores mixed case identifiers", mtdt.storesMixedCaseIdentifiers()); s[7] = setString2("Identifier quote string", mtdt.getIdentifierQuoteString()); s[8] = setString2("Supported SQL keywords", mtdt.getSQLKeywords()); s[9] = setString2("Numeric functions", mtdt.getNumericFunctions()); s[10] = setString2("String functions", mtdt.getStringFunctions()); s[11] = setString2("System functions", mtdt.getSystemFunctions()); s[12] = setString2("Time and date functions", mtdt.getTimeDateFunctions()); mtdt = null; return s; } public String[][] getEngineFeatures() throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[][] s = new String[27][2]; s[0] = setString2("Property", "Value"); s[1] = setString2("Minimun SQL grammar", mtdt.supportsMinimumSQLGrammar()); s[2] = setString2("Core SQL grammar", mtdt.supportsCoreSQLGrammar()); s[3] = setString2("Extended SQL grammar", mtdt.supportsExtendedSQLGrammar()); s[4] = setString2("ANSI-92 Entry Level SQL", mtdt.supportsANSI92EntryLevelSQL()); s[5] = setString2("ANSI-92 Intermediate SQL", mtdt.supportsANSI92IntermediateSQL()); s[6] = setString2("ANSI-92 Full SQL grammar", mtdt.supportsANSI92FullSQL()); s[7] = setString2("Integrity enhancement facility", mtdt.supportsIntegrityEnhancementFacility()); s[8] = setString2("Outer joins", mtdt.supportsOuterJoins()); s[9] = setString2("Full outer joins", mtdt.supportsFullOuterJoins()); s[10] = setString2("Limited outer joins", mtdt.supportsLimitedOuterJoins()); s[11] = setString2("Alter table with add column", mtdt.supportsAlterTableWithAddColumn()); s[12] = setString2("Alter table with drop column", mtdt.supportsAlterTableWithDropColumn()); s[13] = setString2("Column aliasing", mtdt.supportsColumnAliasing()); s[14] = setString2("Table correlation names", mtdt.supportsTableCorrelationNames()); s[15] = setString2("Expressions in order by", mtdt.supportsExpressionsInOrderBy()); s[16] = setString2("Unrelated order by", mtdt.supportsOrderByUnrelated()); s[17] = setString2("Group by", mtdt.supportsGroupBy()); s[18] = setString2("Unrelated group by", mtdt.supportsGroupByUnrelated()); s[19] = setString2("Group by beyond select", mtdt.supportsGroupByBeyondSelect()); s[20] = setString2("Like escape clause", mtdt.supportsLikeEscapeClause()); s[21] = setString2("Multiple result sets", mtdt.supportsMultipleResultSets()); s[22] = setString2("Multiple transactions", mtdt.supportsMultipleTransactions()); s[23] = setString2("Non nullable columns", mtdt.supportsNonNullableColumns()); s[24] = setString2("Term for schemas", mtdt.getSchemaTerm()); s[25] = setString2("Term for procedures", mtdt.getProcedureTerm()); s[26] = setString2("Term for catalogs", mtdt.getCatalogTerm()); mtdt = null; return s; } public String[][] getEngineLimitations() throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[][] s = new String[10][2]; s[0] = setString2("Property", "Value"); s[1] = setString2("Binary literal length", mtdt.getMaxBinaryLiteralLength()); s[2] = setString2("Character literal length", mtdt.getMaxCharLiteralLength()); s[3] = setString2("Column name length", mtdt.getMaxColumnNameLength()); s[4] = setString2("Columns in group by", mtdt.getMaxColumnsInGroupBy()); s[5] = setString2("Columns in index", mtdt.getMaxColumnsInIndex()); s[6] = setString2("Columns in order by", mtdt.getMaxColumnsInOrderBy()); s[7] = setString2("Columns in select", mtdt.getMaxColumnsInSelect()); s[8] = setString2("Columns in table", mtdt.getMaxColumnsInTable()); s[9] = setString2("Number of connections", mtdt.getMaxConnections()); mtdt = null; return s; } public String[] getCatalogs() throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[] s = getResultSetColumn(mtdt.getCatalogs(), 1); if (s.length == 0) { s = new String[1]; s[0] = ""; // anonymous catalog } mtdt = null; return s; } public String[] getTables(String catalog, String type) throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[] types = new String[1]; types[0] = type; String[] s = getResultSetColumn(mtdt.getTables(catalog, null, "%", types), "TABLE_NAME"); mtdt = null; return s; } public String[][] getTableColumns(String catalog, String table) throws Exception { if (mtdt == null) { mtdt = conn.getMetaData(); } String[][] s = getAllResultSetColumns(mtdt.getColumns(catalog, null, table, "%")); mtdt = null; return s; } public String[][] getTablePrimaryKeys(String catalog, String table) throws Exception {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -