前言
试用并配置了一晚上的MySql并尝试实现基本的Java与Mysql之间的连接驱动。由于看到的课本和部分网站上分享的还是较旧版本的Java与Mysql之间的连接方法,希望在这里分享下目前较新版本的Java与Mysql的连接方法教程。
当然或许总有一天这篇博客记载的方法也会逐渐遭到抛弃或者弃用
正文
准备工具:
- 安装好的MySql
- Eclipse
- mysql-connector-java
注:MySql以及mysql-connector-java等相关的工具下载、安装教程可见于参考链接
必需步骤:
- 注册驱动(这里选择注册mysql的驱动)
Class.forName("com.mysql.cj.jdbc.Driver");
//注意,需要使用"com.mysql.cj.jdbc.Driver"作为新的mysql驱动
//旧的"com.mysql.jdbc.Driber"已被弃用
- 将mysql-connector-java加入到当前项目的bulid path
复制下载好的mysql-connector-java到当前项目与src同级的、新创建好的lib文件夹内。通过右击创建好的Java project->Bulid Path->Configure Bulid Path…进入到Java Bulid Path菜单内。上方菜单内选择Libraries,选中Module Path,右侧菜单内选择Add JARs…,将lib中的驱动加入到Libraries中。
- 在环境变量中添加CLASSPATH,使CLASSPATH指向mysql-connector-java的路径。
- 在java中尝试连接MySQL进行测试:
String url = "jdbc:mysql://localhost:3306/database?serverTimezone = GMT";
Class.forName("com.mysql.cj.jdbc.Driver");
String UserNmae = "username";
String Password = "password";
Connection con = DriverManager.getConnection(url,userName,password);
//接下来就可以从Console处的反馈判断是否成功访问到
常见问题
-
访问MySQL失败,Console显示:
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone 原因分析: MySQL需要一个时区判断信息,可能涉及到时间戳管理 解决方案: 在url后添加时区信息,如: String url = "jdbc:mysql://localhost:3306/database?serverTimezone = GMT";
-
显示:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. 原因分析: 使用了已弃用的java-mysql驱动程序,需更换更新的java-mysql驱动程序 解决方案: 注册驱动程序时使用新的java-mysql驱动程序,使用以下语句: Class.forName("com.mysql.cj.jdbc.Driver");
碎碎念
一定要认真看清有没有打错字啊!
个人就因为将jdbc达成了jbdc一直没发现浪费了大量时间,如果不熟悉可以直接将网上博客内的代码内容复制下来。一旦打错字没发现可能就要付出短则几分钟,多则几小时的查错与debug。
另外,配置MySQL访问用户信息可直接在Java class里设置,也可以通过新建properties文件,通过读取配置文件等操作得到Mysql访问用户信息从而登入Mysql。
参考链接
MySql安装教程
mysql-connector-java安装网址
一些大佬们的博客:
由于未设置时区信息引起的出错的解决办法