java原生jdbc连接mysql核心四步:准备匹配版本驱动(5.7用5.1.x,8.0+用8.0.x)、写对url(如jdbc:mysql://localhost:3306/test?usessl=false&servertimezone=asia/shanghai)、提供账号密码、显式加载com.mysql.cj.jdbc.driver并用drivermanager.getconnection获取connection。

Java 用原生 JDBC 连接 MySQL,核心就四步:准备好驱动、写对连接地址、提供账号密码、正确写代码。不依赖 Spring 或 MyBatis,直接走 JDK 自带的 java.sql 接口,是最底层也最可控的方式。
一、确认环境和驱动版本匹配
MySQL 和驱动必须“说得上话”:
- MySQL 5.7 及更早 → 推荐用
mysql-connector-java 5.1.x(如 5.1.49) - MySQL 8.0+ → 必须用
8.0.x版本驱动(如 8.0.33),类名和 URL 参数都有变化 - Maven 依赖写法(以 8.0.33 为例):
<dependency><br><groupid>mysql</groupid><br><artifactid>mysql-connector-java</artifactid><br><version>8.0.33</version><br></dependency>
别用太新的 JDK(比如 21+)配老驱动,容易因模块系统报 NoClassDefFoundError。
二、写对 JDBC 连接 URL
URL 不是随便拼的,格式固定,且 MySQL 8.0 要求显式加时区和 SSL 控制:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 基础结构:
jdbc:mysql://主机:端口/数据库名?参数1=值1&参数2=值2 - 常见安全参数(MySQL 8.0 必加,否则可能报错):
jdbc:mysql://localhost:3306/test?<br> useSSL=false&<br> serverTimezone=Asia/Shanghai&<br> characterEncoding=utf8
注意:useSSL=false 是开发环境简化配置,生产环境建议配好证书启用 SSL;serverTimezone 缺失会导致时间字段解析异常。
三、加载驱动并获取 Connection
Java 6 起已支持自动发现驱动,但显式加载更清晰、兼容性更好:
- MySQL 8.0 驱动类名:
com.mysql.cj.jdbc.Driver - 完整连接示例(含 try-with-resources 自动释放):
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai";<br>String user = "root";<br>String password = "123456";<br><br>try {<br> Class.forName("com.mysql.cj.jdbc.Driver"); // 显式加载,推荐保留<br> try (Connection conn = DriverManager.getConnection(url, user, password)) {<br> System.out.println("✅ 连接成功:" + conn);<br> }<br>} catch (Exception e) {<br> e.printStackTrace();<br>}四、常见报错直击原因
连不上?先看这几个高频点:
-
No suitable driver found → 驱动没引入,或 URL 前缀不是
jdbc:mysql:// -
Access denied for user → 密码错、用户无远程权限(如连的是服务器 MySQL,需执行
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'pwd'; FLUSH PRIVILEGES;) - Unknown system variable 'xxx' → 驱动版本太低(如用 5.1 连 8.0),升级驱动即可
-
Communications link failure → MySQL 没启动、端口被占、防火墙拦截、或 IP 写成
127.0.0.1却只允许localhost登录(注意 MySQL 中二者权限不同)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










