如何在java中实现连接池?

如何在java中实现连接池?,java,oracle,servlets,jdbc,connection-pooling,Java,Oracle,Servlets,Jdbc,Connection Pooling,我试图理解java中的连接池,在我的应用程序中使用jsp、servlet和Tomcat6服务器。我在java类dbconnection.java中编写了以下代码: 我在windows Xp操作系统中使用与oracle 10g EE的类型4 jdbc连接 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class dbconnection {

我试图理解java中的连接池,在我的应用程序中使用jsp、servlet和Tomcat6服务器。我在
java类dbconnection.java中编写了以下代码:

我在windows Xp操作系统中使用与oracle 10g EE的类型4 jdbc连接

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中检索
连接
,如下所示:

try{
 dbconnection db= new dbconnection();

 Connection con=db.getConnection();
 }
 catch(Exception e){
 } 
finally{
 db.removeConnection();//removes connection
}

连接池
还是在
tomcat服务器
中需要一些配置或其他什么?

您可以获得第三方库,或者您可以使用Java EE容器(例如JBoss或WebSphere)为您提供的连接池

为此,您需要配置并使用JNDI数据源

以下是Tomcat的详细信息:


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


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

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

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"/>

查看此问答了解更多信息:您的问题在这里得到了回答:不要这样做
catch(异常e){}
,这会使调试变得不可能。@artbristol ya但是我应该如何编写
catch语句
?请帮我一点忙。例外情况很痛苦。我通常只做
catch(Exception e){throw new RuntimeException(e);}
,但这要视情况而定。我之前已经通知过您在链接到您自己的站点时需要披露的要求。此外,您的博客文章没有解决上述问题。。。。你的文章也没有。问题是关于如何进行连接池,这个人问了一个例子。所以我把它指向了一个站点,其中解释了连接池,并给出了实现示例。您没有透露它是您的站点,您在这里的文本只是说明了连接池是什么。这不是答案。编辑了答案。现在可以了吗?
  <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>
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();