在web中使用JDBC链接MySQL8.0的几个注意事项

在web中使用JDBC链接MySQL8.0的几个注意事项

  • 一、与MySQL5.0不同的链接语句
    • 二、引入符合MySQL版本的jar包
    • 三、配置web项目和tomcat的JDK
    • 四、JDK1.8引起的小问题

一、与MySQL5.0不同的链接语句

  1. 反射注册语句不同
    也就是驱动加载语句有所改变。
    使用JDBC链接MySQL5.0的版本时,其驱动加载语句为:com.mysql.jdbc.Driver
    但在MySQL6.0及MySQL6.0以上的版本中,使用的驱动加载语句为:com.mysql.cj.jdbc.Driver
    //MySQL6.0以下的驱动加载语句
    Class.forName("com.mysql.jdbc.Driver");
    //MySQL6.0及MySQL6.0以上的驱动加载语句
    Class.forName("com.mysql.cj.jdbc.Driver");
    
    需要注意的是:在MySQL6.0及6.0以上的版本中已经废除了com.mysql.jdbc.Driver这种驱动的加载语句,即便我们引入了jar包,写入数据库链接文件中也无法正常加载驱动。
  2. 链接语句(URL)不同
    由于MySQL8.0采用了更安全的基于SHA 256的密码方式进行身份验证,所以其链接语句也有所改变,官方给出的文字内容为:
    /
    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的属性,那么默认建立5.6.26+和5.7.6+要求的SSL链接。但对于使用SSL的现有应用序,verifyServerCertificate 的属性为false。我们需要通过设定useSSL=false来禁用SSL,或者设置useSSL=true并提供用于服务器证书验证的信任库。
    链接语句变成下:
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false","root","password");
    //test是我的表名,root是MySQL用户名,password是密码
    
    是MySQL用户名,password是密码
    但是只写这样会报错,因为我们还需要设置时区:在test?useSSL=false后加上&serverTimezone=UTC。我们的链接语句就会变成:
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC","root","password");
    //test是我的表名,root是MySQL用户名,password是密码
    

二、引入符合MySQL版本的jar包

虽然这是我们都知道的事,但在此我还是想要提醒一下像我这种马大哈的人。如果你的驱动链接语句、JDK和数据库都没有任何问题却依旧无法链接数据库的话一定要记得检查jar包是否符合你所使用的数据库版本。
这是我之前写的一个有关如何在官网上下载jar包的链接:
https://blog.csdn.net/qq_36587517/article/details/83152960
当然,也会贴出百度云的地址:
https://pan.baidu.com/s/1EtDZCLJHrY5Y0k4xGyqHlA
提取码:z1bl

三、配置web项目和tomcat的JDK

我们在引入jar包,使用正确的驱动语句和链接语句之后还有一项重要的工作需要完成,否则我们的web项目也是无法正确加载MySQL数据库驱动的哦。这项工作就是配置web项目和tomcat的JDK。
MySQL8.0的链接要求使用JDK1.8的环境,我使用的是MyEclipse,所以在这里贴出在MyEclipse中配置web项目和tomcat的JDK步骤。

  1. 配置tomcat的JDK
    点击Window->preferences
    在web中使用JDBC链接MySQL8.0的几个注意事项_第1张图片
    在搜索栏中输入tomcat,点击你所使用的tomcat版本,我使用的是tomcat7,接下来点击tomcat7下的JDK点击Add
    在web中使用JDBC链接MySQL8.0的几个注意事项_第2张图片
    点击下图中画框的Directory
    在web中使用JDBC链接MySQL8.0的几个注意事项_第3张图片
    选择你的JDK安装路径
    在web中使用JDBC链接MySQL8.0的几个注意事项_第4张图片
    之后点击确定,回到上一个页面点击finish,回到preferences界面中的OK,tomcat的JDK配置就完成了。
  2. 配置web项目的JDK
    右键点击项目名选择Build Path->configure Build Path
    在web中使用JDBC链接MySQL8.0的几个注意事项_第5张图片
    选中红框圈中的内容,点击edit
    在web中使用JDBC链接MySQL8.0的几个注意事项_第6张图片
    在弹出的界面中点击Installeb在web中使用JDBC链接MySQL8.0的几个注意事项_第7张图片
    选中现在的JDK版本,点击edit
    在web中使用JDBC链接MySQL8.0的几个注意事项_第8张图片
    依旧选中所需JDK的安装路径
    在web中使用JDBC链接MySQL8.0的几个注意事项_第9张图片
    点击确定,返回前一个界面
    在web中使用JDBC链接MySQL8.0的几个注意事项_第10张图片
    在web中使用JDBC链接MySQL8.0的几个注意事项_第11张图片
    在web中使用JDBC链接MySQL8.0的几个注意事项_第12张图片
    在web中使用JDBC链接MySQL8.0的几个注意事项_第13张图片
    Web项目的JDK配制就完成了。

四、JDK1.8引起的小问题

JDK1.8会引起一些问题,例如我们使用Struts2或者MVC的框架引入的继承类是不能够直接识别的,我们可以选择配置我们的开发环境,引入包来让struts适应JDK1.8。如果你觉得这样过于麻烦的话也可以选择重新装一遍MySQL8.0,在选择身份验证方式的时候选择5.0版本。
//其实都挺麻烦的,所以我才写了这个帖子,在第一次安装的时候就一次性装好。
在web中使用JDBC链接MySQL8.0的几个注意事项_第14张图片
在卸载MySQL的时候一定要卸载干净,在控制面板->程序->卸载程序,卸载掉MySQL后还需要删除C盘中一个隐藏文件夹中的MySQL文件夹。在这里不多赘述,网上前辈们的帖子很多。
之后我们在web项目中使用JDBC链接数据库的时候就要导入JDK5.0的包了,例如5.1等等,驱动语句以及链接语句也需要使用MySQL5.0版本的。

你可能感兴趣的:(在web中使用JDBC链接MySQL8.0的几个注意事项)