在javabean中使用连接池 ,配置tomcat怎么实现啊 ??高手讲一讲吧 :)
解决方案 »
- 请求地址后面有#001什么意思
- a链接的href里写JavaScript怎么不好使(主要是解决参数中文乱码的问题)
- struts:这是什么原因导致的The server encountered an internal error () that prevented it from fulfilling this request
- JSP中 如何向数据库插入当前时间,格式是yyyy-mm-dd
- ASP能给JAVA代码返回值吗?
- 问几个jsp和servlet的问题
- 如何在JSP中从数据库中得到一个月有多少天。
- jspsmartmenu问题
- 中文查询的问题?
- 还是jsp oracle8.1.6中文问题
- JSP中对于SQL server2000中表里的繁体字显示出来是?号!怎么解决?
- 不知道小弟是否有机会?............................
<ResourceParams name="jdbc/DB">
<parameter>
<name>maxActive</name>
<!-- Maximum number of DB connections in pool.Set to 0 for no limit. -->
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<!-- Maximum number of idle DB connections to retain in pool.Set to 0 for no limit. -->
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<!-- Maximum time to wait for a DB connection to become available in ms.An exception is thrown if this timeout is exceeded.Set to -1 to wait indefinitely. -->
<value>10000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<!-- Abandoned DB connections are removed and recycled -->
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<!-- Log a stack trace of the code which abandoned -->
<value>false</value>
</parameter>
<parameter>
<name>factory</name>
<!--DBCP Basic Datasource Factory -->
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>username</name>
<!-- Database User Name -->
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<!-- User Password -->
<value>anl123</value>
</parameter>
<parameter>
<name>driverClassName</name>
<!-- Database Driver Class Name -->
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<!-- Database Address -->
<value>jdbc:jtds:sqlserver://192.168.168.168:1433/BD</value>
</parameter>
</ResourceParams>
conn=SystemParameter.getDataSourceU().getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
// 设置锁超时
stmt.executeUpdate("SET DEADLOCK_PRIORITY LOW \n SET LOCK_TIMEOUT 10000");
}catch(SQLException e){
throw new Exception("创建数据库连接对象异常");
}
配置文件放在哪个文件?
-----------------------------------------------------------------package com.fei.db;
import java.util.*;
public class DBConnPool{
//数据库标识
private String dbid = "sql";
//实际使用中的连接数
private int inUse = 0;
//最大连接数
private int maxConn = 0;
//空闲连接
private Vector freeConn = new Vector();
public DBConnPool(int maxConn){
this.maxConn = maxConn;
}
public DBConnPool(int maxConn,String dbid){
this.maxConn = maxConn;
this.dbid = dbid;
}
/*将连接返回连接池*/
public synchronized void releaseConnection(JConnect conn){
//将连接加入向量尾
freeConn.addElement(conn);
if(inUse>1){
inUse--;
}
System.out.println("releasing Connection");
}
/*从连接池中取出连接*/
public synchronized JConnect getConnection(){
JConnect conn = null;
if(freeConn.size()>0){
//获取列表中的第一个连接
conn = (JConnect)freeConn.firstElement();
freeConn.removeElementAt(0);
if(conn.isClosed()){
//递归自己
conn = this.getConnection();
}
}else if(maxConn==0 || inUse<maxConn){//实际使用的连接小于最大连接数
conn = newConnection();
if(conn!=null){
inUse ++;
}
}
System.out.println("Geting Connection Number is: "+inUse);
return conn;
}
//新创建连接
private JConnect newConnection(){
JConnect conn = JFactory.getJCon(this.dbid);
conn.connect();
System.out.println("Created the Connection");
return conn;
}
/*关闭所有连接*/
public synchronized void closeConn(){
Enumeration ration = freeConn.elements();
while(ration.hasMoreElements()){
JConnect conn = (JConnect)ration.nextElement();
conn.close();
}
freeConn.removeAllElements();
}
//测试
public static void main(String args[]){
DBConnPool db = new DBConnPool(10);
for(int i=0;i<10;i++){
JConnect conn = db.getConnection();
//System.out.println("It is here : "+conn);
SQL runSQL = conn.getSQL();
JResult result = runSQL.select("select * from users");
int rows = result.getRows();
for(int j=0;j<rows;j++){
System.out.print(result.get(j,0)+" ");
System.out.print(result.get(j,1)+" ");
System.out.print(result.get(j,2));
System.out.println();
}
db.releaseConnection(conn);
}
System.out.println("-----------------------------------");
/*for(int i=0;i<10;i++){
JConnect conn = db.getConnection();
System.out.println("It is here : "+conn);
}*/
}
}