如何在java中做连接池?
我想了解connection pooling in java
,我在我的应用程序中使用jsp, servlet and tomcat 6 server
。我已经在写入下面的代码java class dbconnection.java
:如何在java中做连接池?
我使用对于Oracle 10g EE在Windows XP操作系统
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class dbconnection {
public Connection con = null;
public Connection getConnection() throws Exception, SQLException
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:abc","abc", "abc");
}
catch(Exception e)
{
}
return con;
}
public void removeConnection() throws SQLException
{
con.close();
}
}
那么我在servlet的retriving connection
如下类型4 JDBC连接:
try{
dbconnection db= new dbconnection();
Connection con=db.getConnection();
}
catch(Exception e){
}
finally{
db.removeConnection();//removes connection
}
难道是connection pooling
还是tomcat server
还是别的什么配置?
您可以获得第三方库,也可以使用Java EE容器(例如,JBoss或WebSphere)为您提供的连接池。
为此,您需要配置和使用JNDI数据源。
下面是详细介绍为Tomcat:
连接池是在所有主要的Web和应用服务器提供的功能。你可以找到关于使用Tomcat进行配置的简单示例。 Tomcat Connection Pooling
但是,如果你想编写自己的连接池,那么有可用的库来编写。 Apache DBCP
A 连接池通过执行提前创建连接的工作来运行。 对于JDBC连接池,在应用程序服务器启动时会创建一个Connection对象池。客户端可以访问连接池中的连接对象,并在数据库工作完成后将对象返回到池中。
的context.xml
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cdcol"/>
//这应该在服务器范围内添加,xml文件。例如,如果你使用的是Apache服务器,然后context.xml中会在C发现:\ Apache的Tomcat的6.0.26 \的conf \ context.xml中
的web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
//这应该添加到本地项目的web.xml中。 (不在服务器的web.xml中)。
Context ctx=new InitialContext();
Context envContext = (Context)ctx.lookup("java:comp/env");
DataSource ds=(DataSource)envContext.lookup("jdbc/TestDB");//TestDB is the Database Name
con=ds.getConnection();
stmt = con.createStatement();
我之前已通知您关于链接到您自己的网站时要求披露的要求。此外,您的博客文章不*解决上述问题....并且您的文本也不在此处。 – 2013-03-05 10:14:56
问题是关于如何做连接池并且这个人问过一个例子。所以我将它指向了连接池解释的网站,并给出了实现示例。 – Ruthreshwar 2013-03-06 04:05:24
你没有透露它是*你的网站,你的文字只是说明连接池*是什么。这不是一个答案。 – 2013-03-06 04:10:33
检查这个Q&A以获得更多信息:http://stackoverflow.com/questions/1458693/jdbc-connection-pooling-using-c3p0 – 2012-04-18 07:29:52
你的问题在这里得到解答: 的http://计算器.com/questions/2835090/jdbc-connection-pooling – 2012-04-18 07:32:27
不要做这个catch(Exception e){}',它使调试变得不可能。 – artbristol 2012-04-18 07:55:14