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年3月10日
    12000
  • 香港FairyHostingVPS测评,9.9欧元/月方案值得买吗?香港VPS哪个好

    在当前的建站与业务部署环境中,欧洲数据中心凭借其严格的隐私保护法规和优越的国际网络连通性,成为众多开发者与企业出海的重要选择,本次针对香港FairyHosting推出的9.9欧元/月VPS方案进行了为期72小时的深度实测,该方案主打荷兰阿姆斯特丹机房,结合2026年度的最新优惠活动,以下为详细的数据与体验报告……

    2026年4月28日
    6200
  • 小米6最新的开发版怎么升级,小米6开发版在哪里下载

    小米6(sagit)作为一代神机,其程序开发与ROM适配工作至今仍具有极高的技术挑战性,核心结论在于:成功构建并运行基于Android 13或更高版本的系统,必须严格解决内核接口与VNDK版本的兼容性问题,并正确配置分区表, 针对开发者而言,想要在设备上验证小米6最新的开发版,需要掌握从源码同步到本地编译的全套……

    2026年2月21日
    12700
  • 开发测试时间比多少合适?开发测试时间比最佳实践解析

    在软件工程的项目管理实践中,开发测试时间比并非一个简单的数字游戏,而是衡量研发效能与产品质量的核心杠杆,经过大量行业数据验证与项目复盘,一个成熟且高效的项目团队,其合理的开发与测试时间投入比例应稳定在 1:1.5 至 1:2 之间,这一结论颠覆了传统认知中“开发为主、测试为辅”的误区,强调了测试环节在保障系统稳……

    2026年3月21日
    14100
  • 服务器jvm在哪里看最大内存,jvm最大内存怎么查看

    查看服务器JVM最大内存的核心在于获取当前运行时环境的配置上限,最直接且通用的方法是通过JDK自带的命令行工具进行查询,或者直接查看Java进程的启动参数,这一操作不需要复杂的代码改造,仅需具备服务器访问权限即可完成,对于运维人员和开发者而言,准确掌握JVM最大内存配置是排查内存溢出(OOM)问题和进行性能调优……

    2026年3月29日
    7500
  • 移动电源开发流程复杂吗?移动电源开发方案哪家好

    移动电源开发的成败,核心在于精准平衡安全性、便携性与充电效率的三维关系,任何单一维度的极致追求都必须以不牺牲另外两者的基准线为前提,一款成功的移动电源产品,绝非简单的电芯与电路板堆砌,而是基于场景化需求的系统性工程解决方案,在当前消费电子市场日趋成熟的背景下,产品开发的重心已从单纯的容量比拼,转向了用户体验的精……

    2026年3月17日
    10400
  • 苹果手机怎么用excel?苹果手机自带表格软件怎么用

    苹果手机使用Excel最顺畅的方案是结合苹果原生Numbers应用、微软官方Excel移动端App以及iPadOS的分屏多任务功能,针对轻度办公推荐原生应用,重度数据交互则必须依赖微软官方App,两者在兼容性、功能完整度和跨平台同步上各有优劣,需根据具体工作流选择,在移动办公日益普及的2026年,iPhone用……

    2026年7月9日
    17400
  • Java网页游戏开发入门难?详细教程带你快速上手

    Java网页游戏开发实战指南核心方案: Java网页游戏开发需融合客户端渲染技术与服务端逻辑处理,通过LibGDX+Spring Boot+WebSocket构建高性能跨平台游戏,实现复杂游戏逻辑与实时交互能力,技术架构设计graph LRA[浏览器] –>|WebSocket/HTTP| B(Spri……

    2026年2月13日
    12700
  • 公安智能指挥调度平台怎么用?2026最新系统功能详解

    公安智能指挥调度平台服务器深度测评与选型指南在“智慧公安”与“雪亮工程”全面深化的背景下,公安智能指挥调度平台已不再仅仅是视频流的简单汇聚,而是演变为集多源异构数据融合、实时音视频处理、AI智能分析、GIS地图可视化及应急指挥决策于一体的复杂系统,系统的稳定性、低延迟响应能力及高并发处理能力,直接决定了实战效能……

    2026年6月25日
    2710
  • 服务器ip地址不同怎么办?服务器ip地址不同对网站排名有影响吗

    当检测到服务器 IP 地址不同时,首要结论是:这通常意味着网站遭遇了流量劫持、DNS 解析异常、负载均衡策略调整或服务器迁移,而非单一的技术故障,对于搜索引擎优化(SEO)而言,IP 的剧烈变动若未伴随正确的 301 重定向或域名解析同步,极易触发搜索引擎的“信任降级”机制,导致收录波动甚至排名下跌,必须立即启……

    2026年4月18日
    6500

发表回复

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