news 2026/1/9 9:15:19

Java数据库操作:JDBC入门5步走

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java数据库操作:JDBC入门5步走

一、JDBC到底是个啥?

咱们先别被“Java Database Connectivity”这个长名字吓到,其实核心特简单:

咱们写Java代码的时候,想操作MySQL、Oracle这些数据库(比如存学生信息、查成绩),但Java和数据库是两个不同的“软件”,它们俩没法直接聊天。这时候JDBC就登场了——它是Java官方提供的一套“翻译+桥梁”工具,能让Java代码和数据库之间顺畅沟通。

举个通俗的例子:你(Java代码)想跟一个外国人(数据库)交流,你不会说外语,他也不懂中文。JDBC就是那个翻译官,你说中文(Java语法),翻译官翻译成外语(数据库能懂的SQL语句),外国人的回复(查询结果)也靠翻译官转成你能懂的Java数据(比如List、对象)。

这里要注意:JDBC只是一套“规则”(接口),不是具体的翻译官。真正干活的是“驱动程序”——比如你用MySQL,就需要MySQL的驱动;用Oracle就需要Oracle的驱动。就像去美国要找会英语的翻译,去日本要找会日语的,驱动就是对应语种的翻译官。

二、入门必看:JDBC核心步骤(附简化代码)

学JDBC不用一开始就死记硬背所有细节,先把核心的5个步骤搞懂,就能写出基本的数据库操作代码。我以“查询学生表(student)数据”为例,一步一步拆解开,每个步骤都标了注释,看不懂算我输!

第一步:准备工作——导入驱动包

就像找翻译官之前得先联系好他一样,我们要先把驱动包导入到项目里。现在主流的IDE是IDEA,最方便的方式是用Maven,直接在pom.xml里加一行依赖,Maven会自动下载驱动包:

<!-- MySQL 8.0+的驱动依赖,复制到pom.xml的dependencies标签里 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>

如果不用Maven,就去MySQL官网下载驱动jar包,然后手动添加到项目的lib目录里,记得右键“Add as Library”

第二步:编写代码——核心5步走

import java.sql.*; public class JdbcDemo { public static void main(String[] args) { // 1. 定义数据库连接信息(这3行是关键,根据自己的数据库改!) String url = "jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=Asia/Shanghai"; String username = "root"; // 数据库用户名,默认一般是root String password = "你的数据库密码"; // 你安装MySQL时设置的密码 // 2. 声明需要的对象(Connection是连接,Statement是执行SQL的工具,ResultSet是查询结果) Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 3. 建立连接(相当于找到翻译官,打通沟通渠道) conn = DriverManager.getConnection(url, username, password); System.out.println("连接成功!"); // 4. 执行SQL查询(用Statement对象执行SQL语句,这里查student表所有数据) stmt = conn.createStatement(); String sql = "SELECT * FROM student"; // 要执行的SQL语句 rs = stmt.executeQuery(sql); // 执行查询,结果存在rs里 // 5. 处理查询结果(遍历rs,把数据取出来) while (rs.next()) { // rs.next():判断有没有下一条数据 int id = rs.getInt("id"); // 取id列的值(int类型) String name = rs.getString("name"); // 取name列的值(String类型) int age = rs.getInt("age"); // 取age列的值 System.out.println("学号:" + id + ",姓名:" + name + ",年龄:" + age); } } catch (SQLException e) { // 捕获异常(比如密码错了、数据库名错了,都会在这里报错) e.printStackTrace(); } finally { // 6. 关闭资源(非常重要!用完要关掉,不然会占内存) try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }

三、关键细节拆解(新手最容易踩坑的地方)

1. URL参数别写错!

URL的格式是:jdbc:mysql://主机名:端口号/数据库名?参数1&参数2

  • 主机名:本地数据库就是localhost(如果是远程数据库,写服务器IP)

  • 端口号:MySQL默认是3306,安装时没改就用这个

  • 参数说明:useSSL=false(关闭SSL,不然可能会有警告);serverTimezone=Asia/Shanghai(设置时区为上海,不然会报时区错误,新手必踩!)

2. 资源一定要关闭!

Connection、Statement、ResultSet这三个对象,用完必须关闭,而且要按“ResultSet → Statement → Connection”的顺序关(先关结果,再关执行工具,最后关连接)。放在finally里是因为不管代码有没有报错,finally里的代码都会执行,保证资源能释放。

3. 不同操作用不同的执行方法

我上面用的是executeQuery(),这是专门执行“查询语句”(SELECT)的;如果是执行“增删改”(INSERT、DELETE、UPDATE),要用executeUpdate(),它会返回受影响的行数(比如插入1条数据,就返回1):

// 示例:插入一条学生数据 String insertSql = "INSERT INTO student(name, age) VALUES('张三', 20)"; int rows = stmt.executeUpdate(insertSql); System.out.println("插入了" + rows + "条数据");

四、总结一下

JDBC其实就是Java操作数据库的“桥梁”,核心步骤就5个:导入驱动→建立连接→执行SQL→处理结果→关闭资源。新手不用一开始就追求高深的知识,先把基础步骤练熟,写几个增删改查的例子,慢慢就能理解背后的逻辑了。

我刚开始练的时候,经常因为URL写错、密码输错、忘记关闭资源报错,多试几次、多查几次错误信息就好了。编程这东西,光看没用,一定要动手写!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 23:27:12

(新卷,100分)- 组成最大数(Java JS Python C)

(新卷,100分)- 组成最大数&#xff08;Java & JS & Python & C&#xff09;题目描述小组中每位都有一张卡片&#xff0c;卡片上是6位内的正整数&#xff0c;将卡片连起来可以组成多种数字&#xff0c;计算组成的最大数字。输入描述“,”号分割的多个正整数字符串&a…

作者头像 李华
网站建设 2025/12/24 23:24:29

【课程设计/毕业设计】基于JavaWeb的餐厅点餐系统设计与实现基于JavaWeb的点餐系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/1/5 22:20:11

Java计算机毕设之基于SpringBoot的植物养护知识管理与分享平台的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2025/12/24 23:04:20

AIGC检测不通过?1000字免费试用,让你的论文更有人味。

2025年高校查重系统全面升级&#xff0c;知网、维普、万方等平台AIGC检测模块精准度高&#xff08;数据来源&#xff1a;2025学术检测白皮书&#xff09;。许多同学用AI辅助写作后&#xff0c;发现论文充满AI味&#xff1a;固定句式扎堆、词汇重复率高、逻辑衔接生硬... 最终导…

作者头像 李华
网站建设 2026/1/1 12:45:53

STM32平衡车工具-匿名助手+虚拟串口如何使用。

一.了解要让匿名助手显示波形&#xff0c;核心是让单片机程序按特定格式向电脑发送数据&#xff0c;然后在软件中进行配置。主要步骤和核心关系可参考以下流程图&#xff1a;第二步&#xff1a; 匿名助手端接收与显示第一步&#xff1a; 单片机端发送数据物理串口/USB连接整体流…

作者头像 李华