Java中怎么连接MySQL数据库,怎么上传驱动

Java连接MySQL数据库,核心步骤是下载匹配版本的MySQL Connector/J驱动,将其添加到项目类路径,然后在代码中加载驱动并建立连接。

mysql连接驱动版本选择与下载

选择驱动版本是连接MySQL的第一步,直接决定连接是否成功。多数情况下,你运行的MySQL版本决定了驱动版本的上限,比如MySQL 8.0以上就需要使用8.x版本的驱动,而MySQL 5.7则可以用5.1.x或8.x两种选择。参考2

查看MySQL版本匹配驱动

  • MySQL 5.5 – 5.7:推荐使用onnector/J 5.1.x系列,最后一个稳定版是5.1.49。
  • MySQL 8.0:必须使用Connector/J 8.0.x系列,目前最新稳定版在8.0.33左右。
  • MySQL 8.1及以上:需要8.1.x以上驱动,但国内多数生产环境仍停留在8.0。

行业共识认为,驱动版本尽量与MySQL大版本保持一致,避免因协议差异导致连接失败。

驱动下载渠道

  • 官方下载页:从MySQL官网下载Connector/J,选择Platform Independent的ZIP包,解压后得到jar文件。
  • Maven中央仓库:通过Maven依赖直接获取,无需手动下载,这是目前最主流的方式。
  • 国内镜像:如果Maven下载慢,可使用简米云或华为云镜像,速度明显提升。

驱动文件命名规则

jar文件通常命名为mysql-connector-java-8.0.33.jar,注意8.x版本后类名有所变化,驱动类从com.mysql.jdbc.Driver变为com.mysql.cj.jdbc.Driver。很多新手在连接8.0版本时报错,正是因为没有使用新驱动类名。

上传MySQL数据库连接驱动到项目

驱动文件拿到后,需要将它部署到项目中,不同项目类型有不同的上传方式,我通常按以下三种场景操作。

Java中怎么连接MySQL数据库,怎么上传驱动

通过Maven添加依赖(推荐)

Maven项目只需在pom.xml中加入依赖,坐标如下:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>
  • 版本号根据实际需求修改,建议使用RELEASE版本。
  • 依赖会自动下载jar包并打包到最终产物中,无需手动上传。
  • 如果使用Gradle,写法类似implementation 'mysql:mysql-connector-java:8.0.33'。

手动上传jar包到WEB-INF/lib

对于传统Java Web项目(非Maven),需要将驱动jar包直接复制到项目的WEB-INF/lib目录下。

  • 操作步骤:下载jar包,放入src/main/webapp/WEB-INF/lib(或对应目录),然后在IDE中刷新项目。
  • 注意:如果使用Eclipse,还需将jar包添加到Build Path,否则运行时会报ClassNotFoundException。
  • 在IDEA中,手动放在lib目录后,可以右键jar包选择Add as Library,或直接使用Project Structure模块添加。

上传到服务器运行环境

在部署阶段,驱动jar包需要进入Tomcat或应用服务器的类路径。

  • 嵌入Tomcat:将jar包放在$CATALINA_HOME/lib下,所有应用共享。
  • 应用独立:放在项目自身的WEB-INF/lib,只对当前应用生效。
  • Spring Boot:直接嵌入在Fat Jar中,无需独立上传,只需要在pom.xml里声明依赖。

如果你的项目使用直接拷贝jar包到服务器的方式,请务必检查jar权限,确保可读

Java中怎么连接MySQL数据库,怎么上传驱动

,否则驱动无法加载。参考2

java连接mysql数据库代码示例(JDBC连接)

驱动部署完成后,编写连接代码,这里给出一个标准的JDBC连接示例,并解释每一步。

加载驱动类

Class.forName("com.mysql.cj.jdbc.Driver");
  • MySQL 8.x使用com.mysql.cj.jdbc.Driver。
  • MySQL 5.x使用com.mysql.jdbc.Driver。
  • 从JDBC 4.0开始,驱动会自动注册,这一步可以省略,但显式加载仍然是保险做法。

建立连接

String url = "jdbc:mysql://localhost:3306/databaseName?useSSL=false&serverTimezone=Asia/Shanghai";
String username = "root";
String password = "yourPassword";
Connection conn = DriverManager.getConnection(url, username, password);
  • 连接URL必须包含数据库名称,IP和端口默认localhost:3306。
  • 参数useSSL=false:关闭SSL,本地开发推荐。
  • 参数serverTimezone=Asia/Shanghai:解决时区报错,MySQL 8.0必须指定。
  • 如果连接不上,先检查MySQL服务是否启动,再检查防火墙和端口权限。

执行查询

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT  FROM users");
while (rs.next()) {
    System.out.println(rs.getString("username"));
}

或使用PreparedStatement防SQL注入:

PreparedStatement ps = conn.prepareStatement("SELECT  FROM users WHERE id = ?");
ps.setInt(1, 1);
ResultSet rs = ps.executeQuery();

关闭资源

Java中怎么连接MySQL数据库,怎么上传驱动

rs.close(); stmt.close(); conn.close();

务必在finally块中按顺序关闭,或者使用try-with-resources自动关闭,业界常见错误之一是忘记关闭连接,导致数据库连接池耗尽。参考2

常见问题与解决方案

问题1:java连接mysql8.0版本驱动为什么报错“The server time zone value ‘?й??’ is unrecognized”?

解答:MySQL 8.0要求显式设置时区,在连接URL中添加serverTimezone=Asia/Shanghai或serverTimezone=UTC即可,如果不想在URL中写死,可以在MySQL配置文件my.cnf中设置default-time-zone='+08:00'。

问题2:上传驱动jar包后仍然报“ClassNotFoundException: com.mysql.cj.jdbc.Driver”?

解答:先确认jar包是否在类路径中,对于Tomcat项目,检查WEB-INF/lib下是否有jar文件,并重启服务器,如果使用IDE,手动添加Build Path,对于Maven项目,检查pom.xml依赖是否生效,且scope不是provided。很多情况是jar包没有随项目一起发布,可以查看target目录确认。

问题3:Maven依赖下载慢,或者MySQL驱动版本不匹配怎么办?

解答:使用国内镜像仓库,如简米云仓库,在pom.xml的<repositories>中添加<id>aliyun</id>和<url>https://maven.aliyun.com/repository/public</url>,版本匹配方面,在MySQL官方文档的Connector/J版本兼容表中查找对应关系,通常驱动版本高于MySQL版本不会有大问题,但低于可能无法连接。

连接MySQL数据库,驱动部署是基础,代码配置是细节,版本匹配决定成败。 按照上述步骤操作,绝大多数连接问题都能在几分钟内解决。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/532678.html

赞 (0)
如何使用HTML表单代码和输入,怎么用?
上一篇 2026年7月31日 03:49
如何在一台服务器配置两个Tomcat?,需要注意什么?
下一篇 2026年7月31日 03:53

相关推荐

  • 公司网站开发建设怎么做?企业官网搭建需要多少钱

    在数字化转型的浪潮中,服务器作为网站运行的核心基础设施,其性能稳定性直接决定了用户体验与业务转化率,对于【公司网站开发建设】而言,选择一款高性价比、高可用性的服务器产品,不仅是技术架构的基石,更是降低运维成本、提升品牌信任度的关键策略,本次测评将深入剖析主流云服务器的核心指标,并结合2026年最新的市场优惠政策……

    2026年6月23日
    2100
  • 嵌入式软件开发pdf哪里下载?嵌入式软件开发教程合集

    嵌入式软件开发的精髓在于软硬件协同设计与资源极致优化,获取高质量的嵌入式软件开发pdf资料是工程师快速构建知识体系、解决底层驱动难题的高效路径,核心结论是:嵌入式开发不再是简单的单片机编程,而是基于硬件抽象层(HAL)的系统性工程,掌握底层原理、实时操作系统内核机制以及驱动开发模型,是通往高级开发者的必经之路……

    2026年4月11日
    8400
  • 三菱fx5u怎么做tcp服务器?, 配置步骤是什么?

    三菱FX5U做TCP服务器非常简单,通过内置以太网口启用Socket通信功能,在GX Works3中配置IP和端口,并用SP.SOCKS指令打开服务器监听,即可实现与多个客户端的数据交换,无需额外硬件,理解FX5U的TCP服务器角色在工业现场,经常需要把PLC的数据通过以太网传给上位机或其它设备,FX5U的TC……

    2026年8月21日
    400
  • 广州轻量应用服务器已挂载是什么意思,轻量服务器挂载状态怎么看

    广州轻量应用服务器已挂载,意味着该服务器的计算核心与特定存储盘(系统盘或数据盘)已在底层架构上成功建立连接并完成映射,存储资源已纳入服务器的文件系统管理,可被操作系统直接读写与调用,深度拆解:“已挂载”背后的底层逻辑与实战价值在云计算架构中,“挂载”绝非简单的“插上硬盘”,而是一个涉及块设备映射、文件系统格式化……

    2026年4月27日
    4900
  • ajax发送大数据类型怎么解决?ajax传输大文件报错

    Ajax发送大数据的核心在于将数据分块传输、使用FormData对象或切换为POST方法并调整超时设置,避免默认GET请求的URL长度限制和内存溢出,在Web开发领域,前端与后端的数据交互如同人体的血液循环,而Ajax则是输送血液的血管,当数据量较小,比如用户登录的账号密码,这条血管畅通无阻,但一旦涉及文件上传……

    2026年6月2日
    4200
  • 服务器api数据库访问技术有哪些,api数据库连接方法详解

    高效、安全且可扩展的数据交互架构,是现代互联网应用稳定运行的基石,服务器API数据库访问技术的核心逻辑在于构建一道坚固的“中间层”,将前端请求与后端数据存储进行逻辑解耦,通过连接池管理、参数化查询、ORM对象映射以及严格的身份验证机制,实现数据的高并发吞吐与零安全漏洞,这不仅是技术实现的路径,更是保障企业数据资……

    2026年4月10日
    8400
  • CI如何导出Excel?php代码实现导出Excel文件

    CI导出Excel的核心在于通过配置正确的输出格式或调用后端接口,将数据以.csv或.xlsx格式流式返回前端,从而避免内存溢出并实现高效下载,在数据可视化与业务分析的日常场景中,从CodeIgniter(CI)框架导出数据是极高频的操作需求,许多开发者在处理大量数据时,常遇到页面超时或内存泄漏的问题,这通常是……

    程序开发 2026年7月10日
    13200
  • 南京科研团队租GPU,短期试用还是长期包年?,怎么选更划算

    南京科研团队租GPU,别纠结短期试用还是长期包年,核心看项目阶段和预算,短期试用帮你验证模型和测试环境,长期包年则锁定成本,适配稳定运行的生产任务,南京科研团队租GPU,短期试用到底该试什么?短期试用往往是租GPU的第一步,但你得清楚试什么才算试到位,很多团队试用时只跑个跑分,结果真正部署训练时才发现环境不兼容……

    2026年8月13日
    500
  • 我的世界服务器怎么查IP地址?,IP地址是什么?

    我的世界服务器IP地址是连接游戏的关键,查询方法取决于你使用的是官方服务器还是私人服务器,通常可以通过控制台或管理面板找到,我的世界服务器IP地址是什么?IP地址是网络上的唯一标识符,在《我的世界》中它用于连接服务器,无论是加入大型公共服务器,还是自己搭建的小型私人世界,IP地址都扮演着门牌号的角色,帮助你的游……

    2026年8月19日
    500
  • apache怎么配置虚拟主机?apache配置虚拟主机详细步骤

    关于apache配置虚拟主机在Web服务器架构中,Apache HTTP Server 依然是全球使用率最高的开源Web服务器软件之一,对于中小型企业、个人开发者以及需要托管多个独立域名或应用的团队而言,合理配置虚拟主机(Virtual Hosts)是实现资源隔离、提升安全性与优化性能的关键步骤,本文将基于真实……

    2026年6月15日
    2800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注