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");
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,837评论 0 11
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,643评论 0 4
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,370评论 11 349