在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先理清几个概念:
JDBC的操作步骤: (1)建立数据库和表 (2)创建项目 (3)导入驱动jar包 (4)注册驱动 (5)获取连接
前言 最近安装了一个 mysql 8.0 版本的数据库,在程序中连接的时候可谓是状况不断。之前也会遇到一些问题,这里就对使用 JDBC 连接mysql 会出现的问题做一个汇总。 在此之前说明一下环境:
驱动包URL 的改变 异常信息
原因 通过异常我们可以发现,新的驱动url是com.mysql.cj.jdbc.Driver,经过在网上查阅资料发现,从 mysql6开始,驱动包开始使用新的驱动 url。如果使用旧的 5.0 版本的驱动包,则不用驱动URL,但是如果使用旧的驱动可能会出现一些意想不到的问题。所以还是建议将驱动包升级,然后改变 驱动 URL 的值。 解决方法 将驱动 URL 由com.mysql.jdbc.Driver 换成 com.mysql.cj.jdbc.Driver SSL 警告 警告信息
原因 对警告信息翻译如下。
解决方法 一般在开发中基本不需要使用 SSL 连接,在连接字符串后添加useSSL=false参数就行。但是如果真的有 SSL 连接的需要,则在驱动 URL 后添加useSSL=true参数。 jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false 时区问题 异常信息
原因 同样也是由于版本升级后,新的版本数据库和系统之间有了时区差异,需要指定时区serverTimezone 解决方法 连接字符串后添加参数&serverTimezone=GMT%2B8,最终连接字符串如下: jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8 修改数据库时间。先通过命令行连上数据库,依次输入命令及其输出如下 mysql> show variables like "%time_zone"; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set, 1 warning (0.04 sec) mysql> set global time_zone="+8:00"; Query OK, 0 rows affected (0.01 sec) XML 配置文件中 & 的转义 异常信息
原因 这是我在使用mybatis generator时出现的错误。当时我想在连接字符串后加上useSSL参数,但是由于在 XML 文件中,&是被禁止的,所以需要使用 &的时要用它的转义&来代替。 解决方法 将连接字符串中的 &符号改成& 详细连接字符串参考 jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=GMT%2B8&verifyServerCertificate=false&autoReconnct=true&autoReconnectForPools=true&allowMultiQueries=true 当然如果是使用 XML 作为配置文件,需要将 连接字符串中的 &符号改成& 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对极客世界的支持。 |
请发表评论