dbcp连接池连db2
来源:互联网 发布:用linux打开文件命令 编辑:程序博客网 时间:2024/06/06 00:27
1.新建项目test
2.在webroot/web-inf/lib下面,加入dbcp驱动包:commons-dbcp-1.3.jar,commons-pool-1.6.jar,org.apache.commons.collections_3.2.0.v201005080500.jar
3.加入db2的jdbc驱动包:db2java.jar
4.创建配置文件:config.properties
driverClassName=COM.ibm.db2.jdbc.app.DB2Driver
url=jdbc:db2:dbctrldb
username=db2admin
password=db2admin
initialSize=10
maxActive=50
maxIdle=20
minIdle=5
maxWait=60000
connectionProperties=useUnicode=true;characterEncoding=gbk
defaultAutoCommit=true
defaultTransactionIsolation=READ_UNCOMMITTED
5.创建管理类:
package com.liang.stock.db;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.GenericObjectPool;
public class PoolManager {
private static String
driver="COM.ibm.db2.jdbc.app.DB2Driver",//驱动
url = "jdbc:db2:dbctrldb",//URL
Name="db2admin",//用户名
Password="db2admin";//密码
private static Class driverClass = null;
private static ObjectPool connectionPool = null;
public PoolManager(){
}
private static void loadProperties(){
try {
java.io.InputStream stream = new java.io.FileInputStream ("config.properties");
java.util.Properties props = new java.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 (FileNotFoundException e) {
System.out.println("读取配置文件异常");
} catch(IOException ie){
System.out.println("读取配置文件时IO异常");
}
}
private static synchronized void initDataSource() {
if (driverClass == null) {
try {
driverClass = Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
public static void StartPool() {
loadProperties();
initDataSource();
if (connectionPool != null) {
ShutdownPool();
}
try {
connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new
DriverManagerConnectionFactory(url, Name, Password);
PoolableConnectionFactory poolableConnectionFactory = new
PoolableConnectionFactory(connectionFactory, connectionPool, null, null,
false, true);
Class.forName("org.apache.commons.dbcp.PoolingDriver");
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver
("jdbc:apache:commons:dbcp:");
driver.registerPool("dbpool", connectionPool);
System.out.println("装配连接池OK");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void ShutdownPool() {
try {
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
driver.closePool("dbpool");
} catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection conn = null;
if(connectionPool == null)
StartPool();
try {
conn = DriverManager.getConnection ("jdbc:apache:commons:dbcp:dbpool");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static Connection getConnection(String name){
return getConnection();
}
public static void freeConnection(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void freeConnection (String name,Connection con){
freeConnection(con);
}
public static void main(String[] args) {
try {
Connection conn = PoolManager.getConnection();
if(conn != null){
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * from db.tets");
int c = rs.getMetaData().getColumnCount();
while(rs.next()){
System.out.println();
for(int i=1;i<=c;i++){
System.out.print(rs.getObject(i));
}
}
rs.close();
}
PoolManager.freeConnection(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
5.测试成功。
需要注意的是db2的驱动程序有2个:COM.ibm.db2.jdbc.net.DB2Driver和COM.ibm.db2.jdbc.app.DB2Driver,这2个对应的url写法是不一样的,如果写错会报错:
java.sql.SQLException: No suitable driver
1、app的时候
2、net的时候
- dbcp连接池连db2
- Apache DBCP连接数据库异常重连
- dbcp连接池实现
- DBCP连接池使用
- DBCP连接池详解
- DBCP连接池
- DBCP 连接池参数
- 使用dbcp 连接池
- DBCP 连接池
- Spring DBCP 连接池
- DBCP连接池配置
- DBCP连接池BasicDataSource_hanCSDN_20130504
- DBCP连接池详解
- dbcp 连接池问题
- dbcp连接池配置
- dbcp连接池
- DBCP连接池参数
- dbcp连接池
- Makefile里调用shell注意点
- Fedora 16 开发Tiny6410 之 开启nfs服务
- 怎样用Java来获取真实的IP地址
- webservice
- Android ListView/ListActivity点击长按事件
- dbcp连接池连db2
- 人脸识别技术,让科幻成为现实
- 幸福在以后
- (oracle数据库基础)第七章 PL/SQL子程序设计
- 插入排序
- 你还好么
- 一个MAKEFILE的详细解释
- asp.net代码中尖括号和百分号的用法
- 方便记忆 jquery 获取表单的值。。