云服务器项目数据库连接超时问题解决

具体情况是这样,我在自己的云服务器部署了一个javaweb项目,该项目主要功能就是对数据库的数据进行展示,但是每次刚发布后都能正常运行,而到了第二天再去访问这个项目就连接不上数据库了,查了资料才知道原来mysql的连接会默认在8小时无操作后被销毁,查解决办法,网上很多帖子都说吧那个默认销毁时长改为一年就行了,但这种方法肯定是会影响服务器运行速度的,对此我自己是通过开辟一个线程解决的,如果这个解决方法会有什么隐患也希望路过的大佬可以指点一下。

具体做法:

在工具类和数据库创建连接后,开辟一个新线程,每隔一段时间访问一下数据库但又不进行其他操作,总而言之就是是使得对数据库的无操作时间不超过8小时,代码如下:

final long timeInterval = 1000*60*4;//设置执行周期为4小时
    Runnable runnable = new Runnable() {
        public void run() {
            while (true) {
               Statement statement;
            try {
                statement = conn.createStatement();
//conn为数据库连接
            
               //要执行的SQL语句
            String sql = "select  * from info limit 1";
          
                statement.executeQuery(sql);
                 
            } catch (SQLException e1) {
                
                e1.printStackTrace();
            }
                
                try {
                    Thread.sleep(timeInterval);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };
    Thread thread = new Thread(runnable);
    thread.start();

 

posted @ 2020-04-12 21:13  溜了溜  阅读(1201)  评论(0编辑  收藏  举报