如何在java中进行连接池?

我试图理解connection pooling in java ,我在我的应用程序中使用jsp, servlet and tomcat 6 server 。 我在java class dbconnection.java编写了以下代码:

我在windows Xp OS中使用类型4 jdbc连接与oracle 10g EE

 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中重新connection如下:

 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的详细信息:

连接池通过提前创建连接的工作来运行。 对于JDBC连接池,在应用程序服务器启动时会创建一个Connection对象池。 客户端可以访问连接池中的连接对象,并在db工作完成后将对象返回到池。

的context.xml

   

//这应该添加到服务器上下文xml文件中。 例如,如果您使用的是apache服务器,则可以在C:\ apache-tomcat-6.0.26 \ conf \ Context.xml中找到context.xml。

web.xml中

   DB Connection jdbc/TestDB javax.sql.DataSource Container  

//这应该添加到本地项目的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(); 

连接池是所有主要Web和应用程序服务器中可用的function。 您可以找到有关使用Tomcat进行配置的简单示例。 Tomcat连接池

但是,如果您想编写自己的连接池,那么可以编写库。 Apache DBCP