http://community.csdn.net/Expert/topic/3352/3352743.xml?temp=.2557642上面有介绍,自己看看
解决方案 »
- java入门教程:Hello world程序
- ajax 读取xml数据后 如何生成树
- 关于套打问题
- 新开 ++ Sql Server 数据库高级编程技术者交流群 ++ ,欢迎大家的加入共同讨论```````````
- 急!谁能帮我?好像是缓存服务器问题?
- 下载的源码如何使用和配置TOMCAT环境
- 请教:关于查询的处理
- 在IE中,某一区域为数据的显示区域,想在这区域内加上横行和纵向的滚动条,请问怎么设置?????????
- jsp中class文件怎么存放呀?
- 给QQ邮箱发送有链接的邮件 QQ邮箱会自动去检查一下链接的安全性吗?
- 关于ASP和JSP与SQL SERVER连接优越性的问题!
- 一个简单问题,怎么在当前目录下创建一个目录或者文件,怎么不行,来看看,在线等!!
package com.west100;import java.io.*;
import java.sql.*;
import java.util.Date;
import java.util.*;public class ConnManager {
//private static String Driver = "数据库驱动";
private static String Url = "你的url";
private static String Login = "数据库用户名";
private static String Pass = "密码";
//private Connection conn;
//private Statement stmt;
//private PreparedStatement pstmt;
private int minConn = 1;
private int maxConn = 20;
PrintWriter loger=null;
String logFile ="F:/project/movie/WebModule/log/log.txt";static int connAmount = 0; //现有的连接个数
static Stack stack = new Stack();
Vector vector = new Vector();private static ConnManager instance;public static synchronized ConnManager getInstance()
{
if(instance == null)
{
instance = new ConnManager();
}
else
{
System.out.println(instance);
}
return instance;
}
private ConnManager()
{
try
{
loger = new PrintWriter(new FileWriter(logFile, true), true);
}
catch(IOException e)
{
System.err.println("无法打开日志文件"+logFile);
loger = new PrintWriter(System.err);
}
try
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
for(int i=0; i<minConn; i++)
{
Connection conn = newConnection();
if(conn != null)
{
stack.push(newConnection());
}
}}
catch(Exception e)
{
System.out.println("ConnectionManager: driver not loaded");
//conn = null;
}
}private void log(String msg)
{
loger.println(new Date() + ":" + msg);
}
public synchronized void freeConnection(Connection con)
{
stack.push(con);
notifyAll();
log("归还一个连接到连接池!");
}
public synchronized Connection getConnection()
{
Connection conn = null;
// System.out.println(" ======================="+stack.size());if(stack.size() > 0)
{
System.out.println("从连接池取出一个连接");
System.out.println("现在可用的连接总数1. 为:" + stack.size());
conn = (Connection) stack.pop();
System.out.println("现在可用的连接总数2. 为:" + stack.size());}
if(stack.size() < maxConn)
{
conn = newConnection();
}
else if(stack.size() >= maxConn)
{
try
{
System.out.println("等待连接");
wait(100000);
return getConnection();
}
catch(InterruptedException e)
{
System.out.println("发生异常" + e.getMessage());
}
}
return conn;
}private synchronized Connection newConnection()
{
Connection conn = null;
try
{
if(stack.size() < maxConn)
{
conn = DriverManager.getConnection(Url, Login, Pass);
connAmount++;
if(conn != null)
{
System.out.println("创建一个连接成功:" + connAmount + " " + conn);
System.out.println("连接池创建一个连接 !");
}
return conn;
}
else
{
try
{
log("等待 连接中 :");
wait(10000);
return newConnection();
}
catch(InterruptedException e)
{
log("等待 超时 !");
return null;
}
}
}
catch(SQLException e)
{
log("无法创建连接: " + Url);
return null;
}//return conn;
}
}
<ResourceParams name="jdbc/OracleDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@172.16.136.245:1521:sxszf</value> </parameter> <parameter> <name>username</name> <value>zgsx</value> </parameter> <parameter> <name>password</name> <value>zgsx</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams>
<ResourceParams name="jdbc/MsqlDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</value> </parameter> <parameter> <name>username</name> <value>test</value> </parameter> <parameter> <name>password</name> <value>test</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams>