JDBC连接数据库

连接MYSQL数据库
Connection con =
DriverManager.getConnection(“jdbc:mysql;//host:port/database”,”user”,”password”);


/**

  • 此代码演示通过JDBC连接数据库
  • */
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class jdbcDemo {
    public static void main(String[] args) {
    try
    { //加载驱动类
    Class.forName("com.mysql.cj.jdbc.Driver");
    //建立连接(连接对象内部其实包含了Socket对象,是一个远程的连接。比较耗时,这是Connection对象管理的要点)
    //真正开发中都是通过连接池来管理连接对象
    long start = System.currentTimeMillis();
    Connection conn =
    DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT", "root", "wangxv123");
    long end = System.currentTimeMillis();
    System.out.println("time:"+ (end - start));
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException ex){
    ex.printStackTrace();
    }
    }
    }

**错误详解
错误1:加载类“com.mysql.jdbc.Driver” 。这已被弃用。

解决方法:
新的驱动程序类是`com.mysql.cj.jdbc.Driver’

错误2:Sat Jun 02 11:40:45 CST 2018 WARN:建议不建立服务器身份验证的SSL连接。
根据MySQL 5.5.45 +,5.6.26 +和5.7.6+的要求,如果未设置显式选项,则必须默认建立SSL连接。
为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为’false’。
您需要通过设置useSSL = false显式禁用SSL,或者设置useSSL = true并且为服务器证书验证提供信任库。

解决方法:
这是一个警告
即在原来的数据库名称后面添加:?useUnicode=true&characterEncoding=utf-8&useSSL=false

错误3:
java.sql.SQLException中:服务器时区值’??? EE×??±??’ 。

解决方法:
这是由于数据库和系统时区差异所造成的,
在JDBC连接的URL后面加上serverTimezone = GMT即可解决问题,
再一个解决办法就是使用低版本的MySQL jdbc驱动,