情况是这样,我做的是一个SSH项目,中间需要连接另个一个项目数据库查询数据,也算是双数据源,我就建了个DBUtil类 创建 Connection对象,每天重启起来了 第二天早上页面就访问不了了 我怀疑数据库插叙出错,不知道这种情况大家是否遇到。难道不建数据连接池就不行么。本来想简单实现。请大神指教一下。
package net.shopxx.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import net.shopxx.constant.JdbcConstant;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
/**
* <p>
* Title: JDBC驱动
* </p>
*/
public class DBUtil {
private static final Logger log = Logger.getLogger(DBUtil.class);
private static Connection conn = null;
private static Connection crmConn = null;
public synchronized static Connection getConnection() {
if (null == conn) {
try {
log.info("创建conn数据库连接");
Class.forName(JdbcConstant.JDBC_DRIVER);
conn = DriverManager.getConnection(JdbcConstant.JDBC_URL,
JdbcConstant.JDBC_USERNAME, JdbcConstant.JDBC_PASSWORD);
} catch (ClassNotFoundException e) {
log.error("驱动类找不到", e);
} catch (SQLException e) {
log.error("SQL连接异常", e);
}
}
return conn;
}
public synchronized static Connection getConnectionByCRM() {
if (null == crmConn) {
try {
log.info("创建crmconn数据库连接");
Class.forName(JdbcConstant.CRM_JDBC_DRIVER);
crmConn = DriverManager.getConnection(
JdbcConstant.CRM_JDBC_URL,
JdbcConstant.CRM_JDBC_USERNAME,
JdbcConstant.CRM_JDBC_PASSWORD);
} catch (ClassNotFoundException e) {
log.error("驱动类找不到", e);
} catch (SQLException e) {
log.error("SQL连接异常", e);
}
}
return crmConn;
}
}
mysql会自动断开超过8小时没有使用的连接,而这个连接可能在程序中是没有断开的。
所以程序中需要定时来检查连接,断开长时间不使用的连接。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。