druid关闭连接之后,再开启连接失败

使用的是servlet3.0+druid,对数据库操作执行完后,调用了DruidUtils的close方法,下次再对数据库操作,调用DruidUtils.getConn()获取连接的时候报如下错误{1983F2F3-3C96-4A39-A685-6A26A36F9D56}_20200409133642.jpg

/**

*
*/
public class DruidUtils {

public static DruidDataSource dataSource;

static {

Properties prop = new Properties();

try {

InputStream bb= DruidUtils.class.getClassLoader().getResourceAsStream("com/qrcode/db/druid.properties");

prop.load(DruidUtils.class.getClassLoader().getResourceAsStream("com/qrcode/db/druid.properties"));

dataSource = (DruidDataSource)DruidDataSourceFactory.createDataSource(prop);

//dataSource.addFilters("stat,log4j,wall");

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

public static Connection getConn() {

try {

return dataSource.getConnection();

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

public static void colse(){

dataSource.close();

}

}

druid配置文件

驱动

driverClassName=com.mysql.jdbc.Driver

url

url=jdbc:mysql://127.0.0.1:3306/qrcode?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8

用户名

username=root

密码

password=root

连接池初始化大小

initialSize=10

活动链接

maxActive=10

最小连接数

minIdle=10

回答:

dataSource.close(); 之后就不能getConn
可能需要 restart 或者 resetStat 一下?

回答:

dataSource.close();的意思是关闭连接池,一般程序关闭的时候才会使用。

你这种情况应该把Connection 定义为全局变量,关闭的时候用connection.close();

以上是 druid关闭连接之后,再开启连接失败 的全部内容, 来源链接: utcz.com/a/166366.html

回到顶部