严重: maxIdle is deprecated,严重: testWhileIdle is true, validationQuery not set,Druid连接池连接MSQL报错处理

版权声明:本站所提供的文章资讯、软件资源、素材源码等内容均为本作者提供、网友推荐、互联网整理而来(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考,如有侵犯您的版权,请联系我,本作者将在三个工作日内改正。 https://blog.csdn.net/weixin_42323802/article/details/82594329

JDK9  引发的血案;

druid连接池连接MYSQL报错如下;

是因为maxIdle is deprecated    已经被弃用了;  

G:\tools\java_jdk\jdk-9.0.1\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:
9月 10, 2018 6:54:15 下午 com.alibaba.druid.pool.DruidAbstractDataSource error
严重:
maxIdle is deprecated
9月 10, 2018 6:54:15 下午 com.alibaba.druid.pool.DruidDataSource error
严重: testWhileIdle is true, validationQuery not set
9月 10, 2018 6:54:16 下午 com.alibaba.druid.pool.DruidDataSource info
信息: {dataSource-1} inited


(1)第一条报错信息解决如下;

把过时的配置参数去除;

 附上druid.properties的配置;

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/reba?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
username=root
password=root


initialSize=5
maxActive=10
maxWait=3000
minIdle=3

再次运行,结果如下; 

已解决一个报错信息;


(2)第二条报错信息如下;

严重: testWhileIdle is true, validationQuery not set

报错信息意思是说:校验没有设置,将testWhileIdle修改为false不再报错,工程正常运行。

但此时MYSQL数据库将不再进行连接验证,存在一定的风险。所以设置true.

把以下配置信息添加到druid.properties配置文件中;

validationQuery:SELECT 1
testWhileIdle:true
testOnBorrow:false
testOnReturn:false

运行结果如下;

已解决该条报错;


(3)第三条;

9月 10, 2018 7:19:00 下午 com.alibaba.druid.pool.DruidDataSource info

信息: {dataSource-1} inited

是日志文件,对你没看错,这是正常的。

(4)附上MyUtils工具类,以及Test测试类;

package utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

/**
 * @auther SyntacticSugar
 * @data 2018/9/10 0010下午 6:17
 */
public class MyUtils {
    private static DataSource dataSource;
    private static   Connection conn = null;

    //获取连接
    public static Connection getConnection(DataSource dataSource) {
        try {
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    //获取数据
    public static DataSource getSources() {
        try {
            Properties properties = new Properties();
            properties.load(new FileReader("config/druid.properties"));
//            String driverClassName = properties.getProperty("driverClassName");
//            String url = properties.getProperty("url");
//            String username = properties.getProperty("username");
//            String password = properties.getProperty("password");
//            //已经获取properties数据

            //创建数据库连接池    获取数据源,用连接池直接加载Properties
            dataSource = DruidDataSourceFactory.createDataSource(properties);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return dataSource;
    }
//释放资源
    public  static  void  shifang(){

        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

}

 测试类;

package druid;

import org.junit.jupiter.api.Test;
import utils.MyUtils;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @auther SyntacticSugar
 * @data 2018/9/10 0010下午 6:17
 */
public class Test1 {


    @Test
    public void test() {
        try {
        //获取数据源   连接   释放
            DataSource sources = MyUtils.getSources();
            Connection conn = MyUtils.getConnection(sources);

            String sql= "select * from user";
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet resultSet = ps.executeQuery();
            //while
            while (resultSet.next()) {
                String name = resultSet.getString("name");
                System.out.println(name);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        MyUtils.shifang();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42323802/article/details/82594329