class theOnClose
implements OnConnectionClose {
** Vector v;
public theOnClose(Vector vt) {
v = vt;
}
public void Action(PoolConnection sender) {
v.remove(sender);
}
}
class PoolConnection
implements Connection , Serializable{
** Connection aCon = null;
** boolean closed = false;
** boolean inUse = false;
** String DriverName;
** OnConnectionClose onClose = null;
** void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject();
}
** void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject();
}
protected PoolConnection() {
}
public PoolConnection(String Url, String User, String Password) throws
SQLException {
aCon = DriverManager.getConnection(Url, User, Password);
closed = false;
inUse=true;
}
public PoolConnection(String Url) throws Exception {
aCon = DriverManager.getConnection(Url);
closed = false;
inUse=true;
}
public Statement createStatement() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method createStatement() not yet implemented.");
return aCon.createStatement();
}
public PreparedStatement prepareStatement(String sql) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented.");
return aCon.prepareStatement(sql);
}
public CallableStatement prepareCall(String sql) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method prepareCall() not yet implemented.");
return aCon.prepareCall(sql);
}
public String nativeSQL(String sql) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method nativeSQL() not yet implemented.");
return aCon.nativeSQL(sql);
}
public void setAutoCommit(boolean autoCommit) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method setAutoCommit() not yet implemented.");
aCon.setAutoCommit(autoCommit);
}
public boolean getAutoCommit() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method getAutoCommit() not yet implemented.");
return aCon.getAutoCommit();
}
public void commit() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method commit() not yet implemented.");
aCon.commit();
}
public void rollback() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method rollback() not yet implemented.");
aCon.rollback();
}
public void close() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method close() not yet implemented.");
if(DBConnectionPool.getCout()<=DBConnectionPool.getMinCount())
{
inUse = false;
}else
{
closeConnection();
}
}
public boolean isClosed() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method isClosed() not yet implemented.");
return closed;
}
public DatabaseMetaData getMetaData() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method getMetaData() not yet implemented.");
return aCon.getMetaData();
}
public void setReadOnly(boolean readOnly) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method setReadOnly() not yet implemented.");
aCon.setReadOnly(readOnly);
}
public boolean isReadOnly() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method isReadOnly() not yet implemented.");
return isReadOnly();
}
public void setCatalog(String catalog) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method setCatalog() not yet implemented.");
aCon.setCatalog(catalog);
}
public String getCatalog() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method getCatalog() not yet implemented.");
return aCon.getCatalog();
}
public void setTransactionIsolation(int level) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method setTransactionIsolation() not yet implemented.");
aCon.setTransactionIsolation(level);
}
public int getTransactionIsolation() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method getTransactionIsolation() not yet implemented.");
return aCon.getTransactionIsolation();
}
public SQLWarning getWarnings() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method getWarnings() not yet implemented.");
return aCon.getWarnings();
}
public void clearWarnings() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method clearWarnings() not yet implemented.");
aCon.clearWarnings();
}
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method createStatement() not yet implemented.");
return aCon.createStatement(resultSetType, resultSetConcurrency);
}
public PreparedStatement prepareStatement(String sql, int resultSetType,
int resultSetConcurrency) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented.");
return aCon.prepareStatement(sql, resultSetType, resultSetConcurrency);
}
public CallableStatement prepareCall(String sql, int resultSetType,
int resultSetConcurrency) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method prepareCall() not yet implemented.");
return aCon.prepareCall(sql, resultSetType, resultSetConcurrency);
}
public Map getTypeMap() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method getTypeMap() not yet implemented.");
return aCon.getTypeMap();
}
public void setTypeMap(Map map) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method setTypeMap() not yet implemented.");
aCon.setTypeMap(map);
}
public void setHoldability(int holdability) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method setHoldability() not yet implemented.");
aCon.setHoldability(holdability);
}
public int getHoldability() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method getHoldability() not yet implemented.");
return aCon.getHoldability();
}
public Savepoint setSavepoint() throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method setSavepoint() not yet implemented.");
return setSavepoint();
}
public Savepoint setSavepoint(String name) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method setSavepoint() not yet implemented.");
return setSavepoint(name);
}
public void rollback(Savepoint savepoint) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method rollback() not yet implemented.");
aCon.rollback(savepoint);
}
public void releaseSavepoint(Savepoint savepoint) throws SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method releaseSavepoint() not yet implemented.");
aCon.releaseSavepoint(savepoint);
}
public Statement createStatement(int resultSetType, int resultSetConcurrency,
int resultSetHoldability) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method createStatement() not yet implemented.");
return aCon.createStatement(resultSetType, resultSetConcurrency,
resultSetHoldability);
}
public PreparedStatement prepareStatement(String sql, int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented.");
return aCon.prepareStatement(sql, resultSetType, resultSetConcurrency,
resultSetHoldability);
}
public CallableStatement prepareCall(String sql, int resultSetType,
int resultSetConcurrency,
int resultSetHoldability) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method prepareCall() not yet implemented.");
return aCon.prepareCall(sql, resultSetType, resultSetConcurrency,
resultSetHoldability);
}
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented.");
return aCon.prepareStatement(sql, autoGeneratedKeys);
}
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
// throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented.");
return aCon.prepareStatement(sql, columnIndexes);
}
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws
SQLException {
/**@todo Implement this java.sql.Connection method*/
//throw new java.lang.UnsupportedOperationException("Method prepareStatement() not yet implemented.");
return aCon.prepareStatement(sql, columnNames);
}
public void closeConnection() throws SQLException {
if (onClose != null) {
onClose.Action(this);
}
aCon.close();
}
public boolean isUsed() {
return inUse;
}
public void use() {
inUse = true;
}
public void setOnClose(OnConnectionClose Action) {
onClose = Action;
}
}
以上就是我所写的连接池代码.
使用方法:
DBTools.DBConnectionPool.SetJDBC("jdbc:mysql://fireBird/trmg?useUnicode=true