Tomcat4.0自己带有连接池,用法用google搜一下
解决方案 »
- Tomcat5.5连接SqlServer2000连接池的问题
- 很奇怪的问题!!!100分求解!!在线等!!!!!!!!
- 想大家请教一个JSP中Cookie的问题?帮看下该如何修改程序!
- 开始弄 JasperReport 报表了,想求个例子!
- 进来看看吧,不知该怎么描述这个错误
- jsp能够包含一个不在web站点内,但在本台服务器上的另外一个jsp文件?php是可以的。
- jsp服务器配置?
- 苦恼的中文乱码!!!在servlet中用request.getParameter("xingming")得到的姓名域值就变成了乱码"???",更别提下面的转化函数得到的结果了。
- java bean在jb5环境下的jsp页面中调用出错,急寻解决方法!!!
- springmvc传递json数据报415错误
- 请问Jsp中如何实现文件上传?
- 哪里有struts的资料[ebook]下载,中英文都可,谢谢,哪本比较好,介结一下
顺便给你发个以前在tomcat3下用的conntionpool,我这个也是得到别人不少的帮助
servlet连接池的例子
***************************************
import javax.servlet.* ;
import javax.servlet.http.* ;
import java.io.* ;
import java.sql.* ;
import java.util.Vector;
import oracle.jdbc.driver.*;
import java.util.Enumeration;
import java.util.Properties;
import com.unitech.connectionpool.* ;
public class dbTest extends HttpServlet {
//Initialize global variables
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
// 数据库连接:Connetcion conn = null ;
Connection conn = null ;
//数据库查询内容执行:Statement stment = null ;
Statement stment = null ;
// 数据库连接池的初始化
DBConnectionManager connMgr = DBConnectionManager.getInstance();
//初始化数据库连接池,并且获取数据库连接
private void initDatabaseDriver () {
conn = connMgr.getConnection("oracle");
if (conn == null) {
System.out.println("数据库连接失败。");
return;
}
try {
stment = conn.createStatement();
}
catch (SQLException e) {
e.printStackTrace() ;
}
}
//释放数据库连接
private void freeConnectionPool() {
connMgr.freeConnection("oracle", conn) ;
}
//获取记录集,并返回给VERTOR V
public Vector getForumList() {
String[] s = {"","","","",""} ;//与选取的列数相等。
Vector v = new Vector() ;
this.initDatabaseDriver();
try{
String queryStr = null ;
queryStr = "SELECT BBS_ID,BBS_NAME,DESCRIPTION,MANAGER_ID, CREATE_DATE FROM BBS WHERE IS_SYSTEM='0' ORDER BY CREATE_DATE DESC" ;
ResultSet rSet = stment.executeQuery(queryStr) ;
while (rSet.next()) {
s[0] = Integer.toString(rSet.getInt("BBS_ID")) ;
s[1] = rSet.getString("BBS_NAME") ;
s[2] = rSet.getString("DESCRIPTION") ;
s[3] = rSet.getString("MANAGER_ID") ;
Timestamp createdate = rSet.getTimestamp("CREATE_DATE") ;
String tmp = createdate.toString() ;
s[4] = tmp.substring(0,(tmp.length()-2)) ;
v.addElement(s.clone());
}
rSet.close();
stment.close();
this.freeConnectionPool();
}
catch(Exception e) {
try {
stment.close();
this.freeConnectionPool();
}
catch(SQLException ee) {
ee.printStackTrace();
}
e.printStackTrace() ;
}
return v ;
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = new PrintWriter (response.getOutputStream());
response.setContentType("text/html");
out.println("");
out.println("The servlet has received a GET. This is the reply.");
out.println("");
out.println("");
// 将记录集循环输出到页面。
Vector v = new Vector() ;
v = this.getForumList() ;
for (int i=0; i"
+ ""+s[0]+""
+ ""+s[1]+""
+ ""+s[2]+""
+ ""+s[3]+""
+ ""+s[4]+"");
}
out.println("");
out.close();
}
}
如果使用应用服务器,则一般的在服务器中建立数据源和连接池,方法参看该服务器文档
程序中使用jndi进行查找数据源,然后获取连接
---------------------------------------------------------------
/**
* @author Umesh
* @version 1.0
*
* Development Environment : Oracle9i JDeveloper
* Name of the Application : ConnCacheBean.java
* Creation/Modification History :
*
* Umesh 25-Nov-2001 Created
*
* Overview of Application : This Bean Class is used by all the JSPs
* to perform database interaction. This class uses JDBC to perform any DML/DDL
* operations. The key concept illustarted here is Connection Caching.
*
* As JSPs execute in middle tier, getting an individual database connection
* everytime for every user is an expensive operation. This is true especially
* when number of users involved are large in numbers.
*
* With the help of Connection Caching, the overhead of instantiating a new physical
* database connection can be easily overcome.
*
* This bean is implemented as a SingleTon Class meaning that there can be only
* one instance of this bean per JVM. In the constructor of the bean, Connection
* Cache is initialized and
*
**/
package oracle.otnsamples.oracle9ijdbc.conncachesample;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import oracle.jdbc.pool.OracleDataSource;
import oracle.jdbc.pool.OracleConnectionPoolDataSource;
import oracle.jdbc.pool.OracleConnectionCacheImpl;
import java.util.Hashtable;
import java.util.Vector;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.NameNotFoundException;
import javax.naming.Context;
public class ConnCacheBean {
// Connection Cache Variable
private OracleConnectionCacheImpl m_ocacheimpl = null;
// Data Source Variable
private OracleConnectionPoolDataSource m_cpds = null;
// Variable pointing to this instance
private static ConnCacheBean m_thisInstance = null;
/**
* Private Constructor : This approach makes it easy to implement this class as
* SingleTon Class.
*
* This method initializes Cache if not already initialized.
**/
private ConnCacheBean() throws Exception {
if (m_ocacheimpl == null)
initializeConnectionCache();
}
/**
* Method which returns a single instance of this bean.
**/
public static ConnCacheBean getInstance() throws Exception {
if ( m_thisInstance == null ) {
m_thisInstance = new ConnCacheBean();
}
return m_thisInstance;
}
最简单的方法
下载一个连接池的bean
仔细研究两遍
大致是这个意思:
1、建立一个连接bean
2、生成一个唯一的连接池对象
3、调取连接bean
连接池是一个类中类
http://www.csdn.net/develop/read_article.asp?id=19013