当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 散分 ......
 ·500分求菜单功能。    »显示摘要«
    摘要: 类似于 http://www.aspfaq.com/ 要求我点击菜单上的哪一项就显示哪一页面,并且该菜单与其他的菜单不同颜色。 用javascript实现。 ......


谁有Tomcat中使用连接池的完整的例子,主要是在代码中如何关闭连接池

谁有Tomcat中使用连接池的完整的例子,主要是在代码中如何关闭连接池?从网上找到的方法,再使用了一阵后,数据连接就穷尽了(ORACLE已调整结过了),谁有代码?jshawzh@hotmail.com

NO.1   作者: yoken

在使用connection的method结束前将connection.close()放在try   {}   catch   {}   finally{}的finally{}模块中

NO.2   作者: RobertDeNiro

server.xml  
          <Context   path="/doc"   docBase="doc"   debug="0"   reloadable="true"   crossContext="true">  
  <Logger   className="org.apache.catalina.logger.FileLogger"   prefix="localhost_DBTest_log."   suffix=".txt"   timestamp="true"/>    
  <Resource   name="jdbc/MysqlDB"   auth="Container"   type="javax.sql.DataSource"/>    
          <ResourceParams   name="jdbc/MysqlDB">    
                  <parameter>    
                          <name>factory</name>    
  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>    
  </parameter>    
   
  <parameter>    
  <name>maxActive</name>    
  <value>100</value>    
  </parameter>    
     
  <parameter>    
  <name>maxIdle</name>    
  <value>30</value>    
  </parameter>    
   
  <parameter>    
  <name>maxWait</name>    
  <value>10000</value>    
  </parameter>    
   
  <parameter>    
  <name>username</name>    
  <value>sa</value>    
  </parameter>    
   
  <parameter>    
  <name>password</name>    
  <value>123</value>    
  </parameter>    
   
   
  <parameter>    
  <name>driverClassName</name>    
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>    
  </parameter>    
   
  <parameter>    
  <name>url</name>    
  <value>jdbc:microsoft:sqlserver://192.168.16.100:1433;DatabaseName=MyData</value>    
  </parameter>    
  </ResourceParams>    
  </Context>  
   
  web.xml   中  
        <web-app>  
      <description>MySQL   Test   App</description>    
          <resource-ref>    
              <description>DB   Connection</description>    
              <res-ref-name>jdbc/MysqlDB</res-ref-name>    
              <res-type>javax.sql.DataSource</res-type>    
              <res-auth>Container</res-auth>    
          </resource-ref>    
      </web-app>  
   
  使用  
      import   java.sql.*;  
  import   javax.naming.*;  
   
  public   class   DBSQL   {  
          public   static   Connection   getConnection()   {  
                  try   {  
                          Context   initCtx   =   new   InitialContext();  
                          Context   ctx   =   (Context)   initCtx.lookup("java:comp/env");  
                          //获取连接池对象  
                          Object   obj   =   (Object)   ctx.lookup("jdbc/MysqlDB");  
                          //类型转换  
                          javax.sql.DataSource   ds   =   (javax.sql.DataSource)   obj;  
                          Connection   conn   =   ds.getConnection();  
                          return   conn;  
                          conn.close();  
          conn   =   null;  
                  }  
                  catch   (Exception   ex)   {  
                          ex.printStackTrace();  
                          return   null;  
                  }finally{  
                          if(conn   !=   null){  
                  conn.close();  
          }  
  }  
          }  
  }  
 

NO.3   作者: RobertDeNiro

最后的这几句话就是关闭数据库连接的语句,当然statement也要关闭,把它放在你的调用sql的结束的地方即可                    
                    conn.close();  
  conn   =   null;  
                    finally{  
                          if(conn   !=   null){  
                  conn.close();  
          }  
  }

NO.4   作者: yaray

我想楼主想要问的是:  
          在使用完连接以后如何将这个连接归还到连接池,  
  而不是上面各位所说的将连接关闭掉[   connection.close()   ]  
   
  楼主是不是这个意思?  
 

NO.5   作者: allan1031

连接池本身就是一种动态托管  
  在你代码中coon.close()  
  实际上并没有关闭和数据库的连接  
  而是将连接返回到了连接池中的连接管理机制,并由该机制完成对资源的释放  
  并将释放之后的资源---也就是空的CONNECT返回到空池中  
  所以页面或者SERVLET中调用  
  conn.close();  
  conn   =   null;  
                    finally{  
                          if(conn   !=   null){  
                  conn.close();  
          }  
  }  
   
  此段代码时,资源就可以得到释放了

NO.6   作者: Yssss1980

赫赫,很多人很奇怪  
   
  为什么光闭连接时调用conn.close();而不是象releaseConn(conn)这样的函数来光闭  
   
  看下面的代码  
  public   class   myConnection   extends   Connection  
  {  
          void   close()  
          {  
                        DBPool.releaseConn(this);  
            }  
  }  
   
  明白了吗?  
  调用conn.close()的时候实际上不一定调用是Connection.close这个方法


    摘要: 是在sdk中! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE