MySQL连接池有关问题

MySQL连接池有关问题

MySQL连接池问题

本人使用Tomcat6自带的连接池,配置连接MySQL数据库。连接池配置成功,访问数据库没有问题。

获取链接代码如下:

public static Connection getConnection(){

//如果连接存在,直接返回连接对象

try {

if(conn != null && !conn.isClosed()){

return conn;

}

} catch (SQLException e1) {

e1.printStackTrace();

}

try {

initDataSource();

conn =  ds.getConnection();

} catch (NamingException e) {

System.out.println(“NamingException:数据连接池资源名称找不到”);

} catch (SQLException e) {

System.out.println(“SQLException: 获取连接失败”);

e.printStackTrace();

}

return conn;

}

但是,当多个用户访问时,tomcat报错:

    java.sql.SQLException: Already closed.

或者

   java.lang.NullPointerException

或者

   java.sql.SQLException: Operation not allowed after ResultSet closed

是不是本人从数据库连接池中取连接的方式有问题啊?不知道有谁遇到过同样的问题,希望告知如何解决。

1 楼 wolfbrood 2008-07-28  

<div class=’quote_title’>jjpro 写道</div>

<div class=’quote_div’>本人使用Tomcat6自带的连接池,配置连接MySQL数据库。连接池配置成功,访问数据库没有问题。 <br/><br/>获取链接代码如下: <br/>public static Connection getConnection(){ <br/>//如果连接存在,直接返回连接对象 <br/>try { <br/>if(conn != null &amp;&amp; !conn.isClosed()){ <br/>return conn; <br/>} <br/>} catch (SQLException e1) { <br/>e1.printStackTrace(); <br/>} <br/><br/>try { <br/>initDataSource(); <br/>conn = ds.getConnection(); <br/>} catch (NamingException e) { <br/>System.out.println(“NamingException:数据连接池资源名称找不到”); <br/>} catch (SQLException e) { <br/>System.out.println(“SQLException: 获取连接失败”); <br/>e.printStackTrace(); <br/>} <br/><br/>return conn; <br/>} <br/><br/><br/>但是,当多个用户访问时,tomcat报错: <br/>java.sql.SQLException: Already closed. <br/>或者 <br/>java.lang.NullPointerException <br/>或者 <br/>java.sql.SQLException: Operation not allowed after ResultSet closed <br/><br/>是不是本人从数据库连接池中取连接的方式有问题啊?不知道有谁遇到过同样的问题,希望告知如何解决。</div>

<p><br/><br/>修改成下面: <br/></p>

<pre name=’code’ class=’java’>static{

  initDataSource();

}

public static Connection getConnection(){??

??try {

?????return ds.getConnection();

??} catch (NamingException e) {????

???System.out.println(“NamingException:数据连接池资源名称找不到”);??

??} catch (SQLException e) {?

???System.out.println(“SQLException: 获取连接失败”);

???e.printStackTrace();???

??}

?}

</pre>

<p>?</p>

2 楼 jjpro 2008-07-28  

<div class=’quote_title’>wolfbrood 写道</div><div class=’quote_div’><div class=’quote_title’>jjpro 写道</div>

<div class=’quote_div’>本人使用Tomcat6自带的连接池,配置连接MySQL数据库。连接池配置成功,访问数据库没有问题。 <br/><br/>获取链接代码如下: <br/>public static Connection getConnection(){ <br/>//如果连接存在,直接返回连接对象 <br/>try { <br/>if(conn != null &amp;&amp; !conn.isClosed()){ <br/>return conn; <br/>} <br/>} catch (SQLException e1) { <br/>e1.printStackTrace(); <br/>} <br/><br/>try { <br/>initDataSource(); <br/>conn = ds.getConnection(); <br/>} catch (NamingException e) { <br/>System.out.println(“NamingException:数据连接池资源名称找不到”); <br/>} catch (SQLException e) { <br/>System.out.println(“SQLException: 获取连接失败”); <br/>e.printStackTrace(); <br/>} <br/><br/>return conn; <br/>} <br/><br/><br/>但是,当多个用户访问时,tomcat报错: <br/>java.sql.SQLException

MySQL连接池有关问题

相关文章:

你感兴趣的文章:

标签云: