连接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
19public 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驱动,