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/ShanghaiserverTimezone=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

相关推荐

  • ajax如何连接数据库?ajax连接数据库报错怎么解决

    通过AJAX实现数据库连接并非直接交互,而是利用JavaScript向服务器端脚本(如PHP、Node.js)发送异步请求,由后端处理数据库查询后返回JSON数据,前端再动态更新页面,很多初学者容易陷入一个误区,认为前端代码可以直接连接MySQL或SQL Server,这种想法在2026年的Web开发环境中不仅……

    2026年5月30日
    3300
  • ASP.NET还值得学吗?解析Web开发与企业级应用首选框架优势

    ASP.NET有用吗非常有用,且强大, ASP.NET 是微软打造的核心Web开发框架,历经多年发展,已成为构建高性能、高安全性、可扩展企业级Web应用和服务的首选利器,其强大的生态系统、持续的创新以及对现代开发范式的拥抱,使其在当今云原生、微服务盛行的时代不仅没有过时,反而更加不可或缺, ASP.NET的核心……

    程序开发 2026年2月11日
    13130
  • Justhost香港VPS八折值得买吗?2026最新优惠价格及配置详解

    Justhost近期针对香港VPS推出八折优惠,$4.16/月即可入手512MB内存、5GB SSD及不限流量的KVM实例,适合对成本敏感且需灵活IP配置的个人开发者,在服务器租赁市场,价格波动与配置升级往往是用户关注的焦点,Justhost此次推出的香港节点优惠,直击了中小开发者对低成本、高灵活性资源的痛点……

    2026年6月23日
    2400
  • 构建可信计算生态是什么?可信计算生态如何构建

    构建可信计算生态的核心在于将硬件底层的安全能力与上层业务场景深度融合,通过标准化接口和全链路数据保护,实现从芯片到应用的可验证信任,从而在数字化转型中确立数据安全的新基石,为什么传统安全边界正在失效?过去我们习惯把防火墙、杀毒软件当作安全的全部,就像给房子装防盗门,但如今数据流动在云端、边缘和终端之间,边界变得……

    2026年5月27日
    4400
  • 服务器处理器计划是什么,服务器CPU的发展趋势有哪些?

    核心硬件架构分析在当前企业级计算环境下,处理器的单核性能与多线程并行能力直接决定了业务系统的响应速度与稳定性,本次服务器处理器计划所采用的核心硬件,重点优化了指令集效率与内存带宽,旨在解决高并发场景下的计算瓶颈,处理器技术规格本次计划引入的处理器采用了最新的纳米工艺制程,在功耗控制与性能释放之间取得了极佳平衡……

    2026年7月14日
    1300
  • ASP如何实现附件上传到服务器?本地存储教程详解

    在ASP经典环境中实现文件上传功能需要借助第三方组件或纯脚本方案,由于第三方组件存在兼容性和授权问题,这里推荐使用纯ASP代码实现安全可靠的文件上传功能,核心实现代码<%Dim uploadPath, maxSizeuploadPath = Server.MapPath("/uploads/&q……

    2026年2月7日
    12600
  • h3c交换机怎么做镜像到服务器上,配置步骤有哪些

    H3C交换机镜像到服务器的基础配置步骤H3C交换机做端口镜像到服务器,核心是通过配置本地或远程端口镜像,将指定端口的流量复制到连接服务器的监控端口,使用镜像组和观察端口命令即可实现,配置前,先确认几件事:你要镜像哪个源端口(比如连接核心业务或需要监控的链路),哪个端口连接服务器(监控端口),以及镜像方向是入方向……

    2026年7月30日
    1200
  • 域名解析服务器是什么?域名解析服务器配置教程

    关于域名解析服务器在构建稳定、高效的互联网基础设施时,域名解析服务器(DNS Server)的选择往往被低估,但它却是决定用户访问速度、网站安全性以及业务连续性的关键一环,对于企业级用户和开发者而言,传统的本地自建DNS或免费公共DNS已难以满足高并发、低延迟及抗攻击的需求,本文将深入测评几款主流的企业级域名解……

    2026年5月30日
    4000
  • windows8应用开发怎么做,windows8应用开发教程

    Windows 8 应用开发的核心在于掌握WinRT架构与现代UI设计语言的深度融合,这要求开发者必须突破传统桌面开发的思维定式,转向触控优先、异步编程与生命周期管理的全新开发范式,成功的关键在于构建高性能的XAML界面、合理管理应用状态以及充分利用系统合约,而非仅仅移植旧有代码,WinRT架构与开发环境的基础……

    2026年3月21日
    11800
  • AIoT门锁怎么选?智能门锁安全性能测评

    AIoT门锁作为智能家居生态的核心入口,已从单一的物理防护工具演变为集安全、便捷、智能联动于一体的家庭安防中枢,其核心价值在于通过人工智能与物联网技术的深度融合,实现了被动防御向主动智能防护的跨越,是提升现代家庭居住品质的关键设备,技术融合重构安防逻辑传统智能门锁仅解决“不用带钥匙”的痛点,而新一代产品通过AI……

    2026年3月10日
    11700

发表回复

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