Java连接MySql数据库获取数据

使用的是Java7新增的自动关闭资源的try语句,try后面紧跟"()",在括号里面可声明、初始化一个或多个资源(那些资源必须在程序结束时,显示关闭的),而try语句结束时会自动关闭这些资源。
为保证try语句可正常关闭资源,这些资源实现类必须实现AutoCloseable或Closeable接口,实现这两个接口就必须实现close()方法;Java 7修改了大部分的类使得它们继承了AutoCloseable或Closeable接口。Connection、Statement、ResultSet等接口都继承了AutoCloseable接口,因此它们都可以被try语句关闭。

在main方法中实现以下代码

Class.forName("com.mysql.jdbc.Driver");

        try (
            
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306" + "/test", "root", "root");
            
            Statement stmt = con.createStatement();
            
            ResultSet rs = stmt.executeQuery("select * from admin");
        )
        {
            
            while (rs.next()) {
                
                System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
            }
        }

运行之后,能够获取表中数据,但出现警告

WARN: Establishing SSL connection without server's identity verification is 
not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ 
requirements SSL connection must be established by default if explicit option 
isn't set. For compliance with existing applications not using SSL the 
verifyServerCertificate property is set to'false'. You need either to explicitly 
disable SSL by setting useSSL=false, or set useSSL=true and provide 
truststore for server certificate verification.

不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,必须默认建立SSL连接,因为如果不使用SSL,那么verifyserver证书属性将被设置为“false”。您需要通过设置useSSL=false来显式地禁用SSL,或者设置useSSL=true,并为服务器证书验证提供信任存储。

解决方法是:
获取数据库连接时,在数据库名后面添加参数"useSSL=true"或"useSSL=false"

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306"+ "/test?useSSL=true", "root", "root123");

你可能感兴趣的:(Java连接MySql数据库获取数据)