学习JDBC遇到的一些问题
1. 数据库版本与驱动对应问题
参考官方文档:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html
具体详情还需查看官方文档。
| Connector/J version | JDBC version | MySQL Server version | JRE Supported | JDK Required for Compilation | Status |
|---|---|---|---|---|---|
| 8.0 | 4.2 | 5.6, 5.7, 8.0 | 1.8.x | 1.8.x | General availability. Recommended version. |
| 5.1 | 3.0, 4.0, 4.1, 4.2 | 5.6*, 5.7*, 8.0* | 1.5.x, 1.6.x, 1.7.x, 1.8.x* | 1.5.x and 1.8.x | General availability |
注意:如果数据库版本与驱动不一致则会报java.sql.SQLNonTransientConnectionException异常。
另附大佬博文:https://blog.csdn.net/jungle_rao/article/details/81274720
2. 高版本(MySQL 8.0 以上版本)驱动加载写法区别与一些必须设置的参数
com.mysql.jdbc.Driver更换为com.mysql.cj.jdbc.Driver。- MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。
- 最后还需要设置 CST(时区)。
大佬示例:
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&serverTimezone=UTC","root","password");
补充:在 JDBC4.0 之前,连接数据库的时候,通常会用 Class.forName(“com.mysql.jdbc.Driver”)
这句先加载数据库相关的驱动,然后再进行获取连接等的操作。而 JDBC4.0 之后不需要 Class.forName
来加载驱动,直接获取连接即可,这里使用了 Java 的SPI扩展机制来实现。
附:https://www.jianshu.com/p/46b42f7f593c
另附一篇关于时区的博文:https://www.jianshu.com/p/735e8444cdda
大神教程:https://www.runoob.com/java/java-mysql-connect.html
学习JDBC遇到的一些问题的更多相关文章
- 我们在学习JDBC的时候会过度到J2EE。
我们在学习JDBC的时候会过度到J2EE. 在Swing的组件中,基本上都是在AWT组件的名称前面加“J”. 一般情况下,除了Choise等组件: import javax.swing.*;好要加 ...
- springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务
springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...
- 学习jdbc学习笔记
1.jdbc: java database connection jdbc规范:是sun公司制定的一套连接操作数据库的接口. 我们必须要用具体的驱动类去连接操作数据库. 每个 ...
- [Java Web学习]JDBC事务处理
1. Spring中加入数据库的bean <bean id="dataSource" class="org.apache.commons.dbcp.BasicDat ...
- javaweb学习——JDBC(五)
管理结果集 JDBC使用ResultSet来封装查询到的结果集,然后移动记录指针来取出结果集的内容,除此之外,JDBC还允许通过ResultSet来更新记录,并提供了ResultSetMetaData ...
- 学习JDBC这一篇就够了
配套资料,免费下载 链接: https://pan.baidu.com/s/1CKiwCbQV4FGg_4YMQoebkg 提取码: 7cn3 复制这段内容后打开百度网盘手机App,操作更方便哦 第一 ...
- JavaWeb学习总结-09 JDBC 学习和使用
一 JDBC相关概念介绍 1.1 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...
- javaweb学习总结(三十二)——JDBC学习入门
一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...
- JDBC第二次学习
脑子太笨,必须得记录下来一些文字,方便回来查询. 这是我的第二次学习JDBC的笔记,看的是传智播客——李勇老师的JDBC系列,已看到第23集. 分析在实际项目中该如何应用JDBC 一个简单用户相关的数 ...
随机推荐
- Java二、八、十、十六进制介绍
1.说明 在Java中整数有四种表示方式, 分别为十进制,二进制,八进制,十六进制, 其中十进制就是平常最熟悉,使用最多的进制: 二进制是在计算机中使用最多的进制, 八进制和十六进制都是基于二进制的, ...
- 微服务架构攀登之路(二)之RPC
1. RPC 简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编 ...
- Java手动创建Web项目
原文链接:https://www.toutiao.com/i6495693288043971086/ 为了便于理解Web项目结构,我们手动创建整个过程. 先启动Tomcat 下载Tomcat7.0 解 ...
- SYCOJ411
题面描述 MasMas在面试某大厂时遇到了一道有趣的题.面试官要求MasMas写一个程序找出几个数中,出现次数为奇数的那个数.MasMas抓耳挠腮,请你帮帮他. 输入描述 第一行输入一个数nn (1 ...
- 基于Bert的恶意软件多分类
基于Bert从Windows API序列做恶意软件的多分类 目录 基于Bert从Windows API序列做恶意软件的多分类 0x00 数据集 0x01 BERT BERT的模型加载 从文本到ids ...
- MINItest软件架构总结
MINItest软件架构总结 ----helloWen MINItest软件架构总结1. Problem Description2. Analysis3. Solution3.1. 通过读取设备信息来 ...
- [USB波形分析] 全速USB波形数据分析(一)
在之前的文章一次CAN波形分析之旅里,根据示波器采集的波形数据,详细地分析了CAN通信.今天来分析USB数据,还是同样的流程,但是这次使用matplotlib来协助分析. USB基本波形 USB通过一 ...
- conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
conda : 无法将"conda"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. 解决办法: 没有添加系 ...
- 微服务架构 | *2.3 Spring Cloud 启动及加载配置文件源码分析(以 Nacos 为例)
目录 前言 1. Spring Cloud 什么时候加载配置文件 2. 准备 Environment 配置环境 2.1 配置 Environment 环境 SpringApplication.prep ...
- C++类对象大小问题(一)
先看如下代码: #include<iostream> using namespace std; class Base1 { public: }; class Base2 { public: ...