一个小白在初步学习JDBC连接MySQL数据库时的心得。
遇到问题
在网上找的一套教学视频,其中用的jdbc和mysql的版本与现在我所使用的都不同,遇到了一些驱动加载和连接问题。
分析问题
按照教学视频,做法相同(仅用jdbc连接mysql数据库),用jdbc5.0jar包,出现的问题如图:
在网上看了很多解决方法,也没有解决。ememem
后来想到了mysql和jar驱动包版本的问题,终于到了突破口,用jdbc8.0包,这是新版本,如果只是将jar包换掉会出现下列问题:==Loading class `com.mysql.jdbc.Driver’. This is deprecated. == 和 The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. 就是找不到jdbc驱动和jdbc连接数据库时出现时区不一致问题。
那么就要将加载和连接的代码改掉的,废话不多说上代码–>
Class.forName("com.mysql.cj.jdbc.Driver");
conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc?serverTimezone=UTC","root","123456");
总结
在学习jdbc连接mysql时,不能忽略一些软件的版本问题,这些都可能是你的拦路虎哟。
分享代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Demo01 {
public static void main(String []args) {
try {
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载成功");
} catch (Exception ex) {
System.out.println("加载失败");
// handle the error
}
try {
Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc?serverTimezone=UTC","root","123456");
System.out.println("连接成功");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("连接失败");
e.printStackTrace();
}
}
}