jdbc 连接mysql 第二天就连接不成功,什么原因?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

jdbc 连接mysql 第二天就连接不成功,什么原因?

落地花开啦 2016-02-29 13:59:27 1563

情况是这样,我做的是一个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;
    }
 
}
SQL Java 关系型数据库 MySQL 数据库连接 网络安全 数据库
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:50:14

    mysql会自动断开超过8小时没有使用的连接,而这个连接可能在程序中是没有断开的。
    所以程序中需要定时来检查连接,断开长时间不使用的连接。

    1 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题