📄 db_db2.java
字号:
/**
* Get Cached Connection
* @param connection info
* @param autoCommit true if autocommit connection
* @param transactionIsolation Connection transaction level
* @return connection or null
*/
public Connection getCachedConnection (CConnection connection,
boolean autoCommit, int transactionIsolation)
throws Exception
{
Connection conn = getDataSource(connection).getConnection();
conn.setAutoCommit(autoCommit);
conn.setTransactionIsolation(transactionIsolation);
return conn;
} // getCachedConnection
/**
* Get Connection from Driver
* @param connection info
* @return connection or null
*/
public Connection getDriverConnection (CConnection connection) throws SQLException
{
getDriver();
return DriverManager.getConnection (getConnectionURL (connection),
connection.getDbUid(), connection.getDbPwd());
} // getDriverConnection
/**
* Get Driver Connection
* @param dbUrl URL
* @param dbUid user
* @param dbPwd password
* @return connection
* @throws SQLException
*/
public Connection getDriverConnection (String dbUrl, String dbUid, String dbPwd)
throws SQLException
{
getDriver();
return DriverManager.getConnection (dbUrl, dbUid, dbPwd);
} // getDriverConnection
/**
* Close
*/
public void close()
{
log.config(toString());
m_ds = null;
} // close
/**
* Clean up
*/
public void cleanup()
{
log.config("");
} // cleanup
/**
* Get Data Type
* @param displayType display type
* @param precision precision
* @param defaultValue if true adds default value
* @return data type
*/
public String getDataType (int displayType, int precision,
boolean defaultValue)
{
String retValue = null;
switch (displayType)
{
// IDs
case DisplayType.Account:
case DisplayType.Assignment:
case DisplayType.Color:
case DisplayType.ID:
case DisplayType.Location:
case DisplayType.Locator:
case DisplayType.PAttribute:
case DisplayType.Search:
case DisplayType.Table:
case DisplayType.TableDir:
retValue = "INTEGER";
break;
// Dynamic Precision
case DisplayType.Amount:
retValue = "DECIMAL(18,2)";
if (defaultValue)
retValue += " DEFAULT 0";
break;
case DisplayType.Binary:
case DisplayType.Image:
retValue = "BLOB";
break;
case DisplayType.Button:
retValue = "CHAR(1)";
break;
// Number Dynamic Precision
case DisplayType.CostPrice:
retValue = "DECIMAL(22,6)";
if (defaultValue)
retValue += " DEFAULT 0";
break;
// Date
case DisplayType.Date:
case DisplayType.DateTime:
case DisplayType.Time:
retValue = "Timestamp";
if (defaultValue)
retValue += " DEFAULT 0";
break;
// Number(10)
case DisplayType.Integer:
retValue = "NUMBER(10)";
break;
case DisplayType.List:
retValue = "CHAR(" + precision + ")";
break;
// NVARCHAR
case DisplayType.Memo:
case DisplayType.String:
case DisplayType.Text:
retValue = "NVARCHAR(" + precision + ")";
break;
case DisplayType.TextLong:
retValue = "CLOB";
break;
// Dyn Prec
case DisplayType.Quantity:
retValue = "NUMBER";
break;
case DisplayType.YesNo:
retValue = "CHAR(1)";
break;
default:
log.severe("Unknown: " + displayType);
break;
}
return retValue;
} // getDataType
/**************************************************************************
* Testing
* @param args ignored
*/
public static void main (String[] args)
{
/**
Compiere.startupEnvironment(true);
CConnection cc = CConnection.get();
DB_Oracle db = (DB_Oracle)cc.getDatabase();
db.cleanup();
try
{
Connection conn = ;
// System.out.println("Driver=" + db.getDriverConnection(cc));
DataSource ds = db.getDataSource(cc);
System.out.println("DS=" + ds.getConnection());
conn = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED);
System.out.println("Cached=" + conn);
System.out.println(db);
//////////////////////////
System.out.println("JAVA classpath: [\n" +
System.getProperty("java.class.path") + "\n]");
DatabaseMetaData dmd = conn.getMetaData();
System.out.println("DriverVersion: ["+
dmd.getDriverVersion()+"]");
System.out.println("DriverMajorVersion: ["+
dmd.getDriverMajorVersion()+"]");
System.out.println("DriverMinorVersion: ["+
dmd.getDriverMinorVersion()+"]");
System.out.println("DriverName: ["+
dmd.getDriverName()+"]");
System.out.println("ProductName: ["+
dmd.getDatabaseProductName() +"]");
System.out.println("ProductVersion: [\n"+
dmd.getDatabaseProductVersion()+"\n]");
//////////////////////////
}
catch (Exception e1)
{
e1.printStackTrace();
}
db.cleanup();
System.out.println("--------------------------------------------------");
try
{
Connection conn1 = db.getCachedConnection(cc, false, Connection.TRANSACTION_READ_COMMITTED);
Connection conn2 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED);
Connection conn3 = db.getCachedConnection(cc, false, Connection.TRANSACTION_READ_COMMITTED);
System.out.println("3 -> " + db);
conn1.close();
conn2.close();
conn1 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED);
conn2 = db.getCachedConnection(cc, true, Connection.TRANSACTION_READ_COMMITTED);
System.out.println("3 -> " + db);
conn1.close();
conn2.close();
conn3.close();
System.out.println("0 -> " + db);
}
catch (Exception e1)
{
e1.printStackTrace();
}
db.cleanup();
// System.exit(0);
System.out.println("--------------------------------------------------");
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.getConnectionRO());
System.out.println(DB.getConnectionRW());
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED));
System.out.println(db);
try
{
System.out.println("-- Sleeping --");
Thread.sleep(60000);
System.out.println(db);
db.close();
db.cleanup();
System.out.println(db);
}
catch (InterruptedException e)
{
}
/** **/
/** **/
// Connection option 1
try
{
DB2Driver driver = new DB2Driver();
DriverManager.registerDriver(driver);
Connection con = DriverManager.getConnection("jdbc:db2://dev1:50000/sample",
"db2admin", "db2admin");
// "compiere", "compiere");
// "db2inst1", "daDm7rfr");
System.out.println("Connection Catalog = " + con.getCatalog());
//
DatabaseMetaData md = con.getMetaData();
System.out.println(md.getDatabaseProductName() + " - " + md.getDatabaseProductVersion());
// System.out.println(md.getDatabaseMajorVersion() + " - " + md.getDatabaseMinorVersion());
System.out.println(md.getDriverName() + " - " + md.getDriverVersion());
// System.out.println(md.getDriverMajorVersion() + " - " + md.getDriverMinorVersion());
System.out.println("URL=" + md.getURL());
System.out.println("User=" + md.getUserName());
//
System.out.println(md.getNumericFunctions());
System.out.println(md.getStringFunctions());
System.out.println(md.getTimeDateFunctions());
System.out.println(md.getSystemFunctions());
//
System.out.println("Catalogs - " + md.getCatalogTerm());
ResultSet rs = md.getCatalogs();
while (rs.next())
System.out.println("- " + rs.getString(1));
//
System.out.println("Schemas - " + md.getSchemaTerm());
rs = md.getSchemas();
while (rs.next())
System.out.println("- " + rs.getString(1));
String sql = "SELECT GRANTOR,GRANTEE,DBADMAUTH FROM SYSCAT.DBAUTH";
PreparedStatement pstmt = null;
try
{
pstmt = con.prepareStatement (sql);
rs = pstmt.executeQuery ();
while (rs.next ())
{
String GRANTOR = rs.getString(1);
String GRANTEE = rs.getString(2);
String DBADMAUTH = rs.getString(3);
System.out.println(GRANTOR + " -> " + GRANTEE + " = " + DBADMAUTH);
}
rs.close ();
pstmt.close ();
pstmt = null;
}
catch (Exception e)
{
log.log (Level.SEVERE, sql, e);
}
try
{
if (pstmt != null)
pstmt.close ();
pstmt = null;
}
catch (Exception e)
{
pstmt = null;
}
System.out.println("SysCat Table");
rs = md.getTables(null, "SYSCAT", null, new String[] {"TABLE", "VIEW"});
while (rs.next())
System.out.println("- User=" + rs.getString(2) + " | Table=" + rs.getString(3)
+ " | Type=" + rs.getString(4) + " | " + rs.getString(5));
//
System.out.println("Column");
rs = md.getColumns(null, "SYSCAT", "DBAUTH", null);
while (rs.next())
System.out.println("- Tab=" + rs.getString(3) + " | Col=" + rs.getString(4)
+ " | Type=" + rs.getString(5) + ", " + rs.getString(6)
+ " | Size=" + rs.getString(7) + " | " + rs.getString(8)
+ " | Digits=" + rs.getString(9) + " | Radix=" + rs.getString(10)
+ " | Null=" + rs.getString(11) + " | Rem=" + rs.getString(12)
+ " | Def=" + rs.getString(13) + " | " + rs.getString(14)
+ " | " + rs.getString(15) + " | " + rs.getString(16)
+ " | Ord=" + rs.getString(17) + " | Null=" + rs.getString(18)
);
con.close();
}
catch (SQLException ex)
{
ex.printStackTrace();
}
/** **/
} // main
} // DB_DB2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -