DBCP依赖Apache的另外2个开源项目
commons.collections.jar和commons.pool.jar
下载这些包并将这些包的路径添加到classpath中就可以使用dbcp做为项目中的数据库连接池使用了。
以下是连接池代码:
commons.collections.jar和commons.pool.jar
下载这些包并将这些包的路径添加到classpath中就可以使用dbcp做为项目中的数据库连接池使用了。
以下是连接池代码:
packageselfservice;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importorg.apache.commons.dbcp.ConnectionFactory;
importorg.apache.commons.dbcp.DriverManagerConnectionFactory;
importorg.apache.commons.dbcp.PoolableConnectionFactory;
importorg.apache.commons.dbcp.PoolingDriver;
importorg.apache.commons.pool.ObjectPool;
importorg.apache.commons.pool.impl.GenericObjectPool;

publicclassPoolManager...{
privatestaticString
driver="oracle.jdbc.driver.OracleDriver",//驱动
url="jdbc:oracle:thin:@192.168.0.40:1521:drcom",//URL
Name="drcom",//用户名
Password="drcom";//密码
privatestaticClassdriverClass=null;
privatestaticObjectPoolconnectionPool=null;

publicPoolManager()...{
}
privatestaticvoidloadProperties()...{
try...{
java.io.InputStreamstream=newjava.io.FileInputStream("config.properties");
java.util.Propertiesprops=newjava.util.Properties();
props.load(stream);
driver=props.getProperty("ORACLE_DRIVER");
url=props.getProperty("ORACLE_URL");
Name=props.getProperty("ORACLE_LOGIN_NAME");
Password=props.getProperty("ORACLE_LOGIN_PASSWORD");
}catch(FileNotFoundExceptione)...{
System.out.println("读取配置文件异常");
}catch(IOExceptionie)...{
System.out.println("读取配置文件时IO异常");
}
}

privatestaticsynchronizedvoidinitDataSource()...{
if(driverClass==null)...{
try...{
driverClass=Class.forName(driver);
}catch(ClassNotFoundExceptione)...{
e.printStackTrace();
}
}
}

publicstaticvoidStartPool()...{
loadProperties();
initDataSource();
if(connectionPool!=null)...{
ShutdownPool();
}
try...{
connectionPool=newGenericObjectPool(null);
ConnectionFactoryconnectionFactory=new
DriverManagerConnectionFactory(url,Name,Password);
PoolableConnectionFactorypoolableConnectionFactory=new
PoolableConnectionFactory(connectionFactory,connectionPool,null,null,
false,true);
Class.forName("org.apache.commons.dbcp.PoolingDriver");
PoolingDriverdriver=(PoolingDriver)DriverManager.getDriver
("jdbc:apache:commons:dbcp:");
driver.registerPool("dbpool",connectionPool);
System.out.println("装配连接池OK");
}catch(Exceptione)...{
e.printStackTrace();
}
}

publicstaticvoidShutdownPool()...{
try...{
PoolingDriverdriver=(PoolingDriver)DriverManager.getDrive
("jdbc:apache:commons:dbcp:");
driver.closePool("dbpool");
}catch(SQLExceptione)...{
e.printStackTrace();
}
}

publicstaticConnectiongetConnection()...{
Connectionconn=null;
if(connectionPool==null)
StartPool();
try...{
conn=DriverManager.getConnection("jdbc:apache:commons:dbcp:dbpool");
}catch(SQLExceptione)...{
e.printStackTrace();
}
returnconn;
}

publicstaticConnectiongetConnection(Stringname)...{
returngetConnection();
}

publicstaticvoidfreeConnection(Connectionconn)...{
if(conn!=null)...{
try...{
conn.close();
}catch(SQLExceptione)...{
e.printStackTrace();
}
}
}
publicstaticvoidfreeConnection(Stringname,Connectioncon)...{
freeConnection(con);
}
publicstaticvoidmain(String[]args)...{
try...{
Connectionconn=PoolManager.getConnection();
if(conn!=null)...{
Statementstatement=conn.createStatement();
ResultSetrs=statement.executeQuery("select*from
tblgxinterface");
intc=rs.getMetaData().getColumnCount();
while(rs.next())...{
System.out.println();
for(inti=1;i<=c;i++)...{
System.out.print(rs.getObject(i));
}
}
rs.close();
}
PoolManager.freeConnection(conn);
}catch(SQLExceptione)...{
e.printStackTrace();
}
}
}
以上创建一个连接池,并从连接池中得到连接,连接池会管理每个连接,以上测试通过。
1243

被折叠的 条评论
为什么被折叠?



