news 2026/7/8 4:30:57

MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互

在现代应用中,数据库是不可或缺的一部分。Java 作为一种广泛使用的编程语言,提供了丰富的 API 来与各种数据库进行交互。本文将详细介绍如何在 Java 中连接 MySQL 数据库,并实现基本的数据交互功能。

一、环境准备

1.1 安装 MySQL

首先,确保你已经安装了 MySQL 数据库。可以通过 MySQL 官网 下载并安装适合你操作系统的版本。

1.2 创建数据库和表

在安装完成后,登录 MySQL 命令行工具,创建一个名为test_db的数据库,并在其中创建一个名为users的表:

CREATE DATABASE test_db; USE test_db; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL );
1.3 添加 MySQL Connector/J 依赖

在 Java 项目中,你需要添加 MySQL Connector/J 作为依赖。如果你使用 Maven,可以在pom.xml中添加如下依赖:

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.32</version> <!-- 请根据最新版本更新 --> </dependency>

二、Java 代码实现

2.1 创建数据库连接

接下来,在 Java 代码中实现与 MySQL 数据库的连接。以下是一个简单的连接示例:

package com.example.demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MySQLConnection { private static final String URL = "jdbc:mysql://localhost:3306/test_db"; // 数据库地址 private static final String USER = "root"; // 数据库用户名 private static final String PASSWORD = "your_password"; // 数据库密码 public static Connection getConnection() { Connection connection = null; try { // 加载 JDBC 驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 获取数据库连接 connection = DriverManager.getConnection(URL, USER, PASSWORD); System.out.println("数据库连接成功!"); } catch (ClassNotFoundException e) { System.out.println("找不到 JDBC 驱动!" + e.getMessage()); } catch (SQLException e) { System.out.println("数据库连接失败!" + e.getMessage()); } return connection; } }
2.2 插入数据

接下来,我们编写一个方法来插入用户数据到users表中:

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class UserDAO { public void addUser(String username, String password) { String sql = "INSERT INTO users (username, password) VALUES (?, ?)"; try (Connection connection = MySQLConnection.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { preparedStatement.setString(1, username); preparedStatement.setString(2, password); int rowsAffected = preparedStatement.executeUpdate(); System.out.println("成功插入 " + rowsAffected + " 行数据。"); } catch (SQLException e) { System.out.println("插入数据失败!" + e.getMessage()); } } }
2.3 查询数据

下面是一个查询用户数据的方法:

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserDAO { // 其他代码... public void getAllUsers() { String sql = "SELECT * FROM users"; try (Connection connection = MySQLConnection.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql); ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { int id = resultSet.getInt("id"); String username = resultSet.getString("username"); String password = resultSet.getString("password"); System.out.println("用户ID: " + id + ", 用户名: " + username + ", 密码: " + password); } } catch (SQLException e) { System.out.println("查询数据失败!" + e.getMessage()); } } }
2.4 更新数据

更新用户信息的方法如下:

public class UserDAO { // 其他代码... public void updateUserPassword(int id, String newPassword) { String sql = "UPDATE users SET password = ? WHERE id = ?"; try (Connection connection = MySQLConnection.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { preparedStatement.setString(1, newPassword); preparedStatement.setInt(2, id); int rowsAffected = preparedStatement.executeUpdate(); System.out.println("成功更新 " + rowsAffected + " 行数据。"); } catch (SQLException e) { System.out.println("更新数据失败!" + e.getMessage()); } } }
2.5 删除数据

删除用户数据的方法如下:

public class UserDAO { // 其他代码... public void deleteUser(int id) { String sql = "DELETE FROM users WHERE id = ?"; try (Connection connection = MySQLConnection.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { preparedStatement.setInt(1, id); int rowsAffected = preparedStatement.executeUpdate(); System.out.println("成功删除 " + rowsAffected + " 行数据。"); } catch (SQLException e) { System.out.println("删除数据失败!" + e.getMessage()); } } }

三、测试代码

在主程序中测试上述功能,创建Main类并添加如下代码:

public class Main { public static void main(String[] args) { UserDAO userDAO = new UserDAO(); // 插入用户 userDAO.addUser("john_doe", "password123"); // 查询用户 userDAO.getAllUsers(); // 更新用户密码 userDAO.updateUserPassword(1, "new_password"); // 查询用户 userDAO.getAllUsers(); // 删除用户 userDAO.deleteUser(1); // 查询用户 userDAO.getAllUsers(); } }

四、总结

通过本文的介绍,你已经学会了如何在 Java 中连接 MySQL 数据库并实现数据交互。主要内容包括:

  • 数据库连接:使用 JDBC 连接 MySQL 数据库。
  • 数据操作:实现插入、查询、更新和删除(CRUD)操作。
  • 最佳实践:使用PreparedStatement避免 SQL 注入。

在实际应用中,建议使用连接池(如 HikariCP 或 DBCP)来提高性能和资源利用率。同时,可以考虑使用 ORM 框架(如 Hibernate 或 MyBatis)来简化数据库操作,提高开发效率。希望本文能帮助你快速上手 Java 与 MySQL 的数据交互!

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

ClickHouse 分片集群备份一致性分析文档

目录标题ClickHouse 分片集群备份一致性分析文档1. 问题背景2. 环境信息2.1 集群配置2.2 Pod 列表2.3 备份配置3. 官方备份方案分析3.1 Altinity clickhouse-backup 工具3.2 工作原理 - FREEZE 机制3.3 ClickHouse 内置 BACKUP/RESTORE 命令4. 分片备份一致性问题4.1 核心问题4…

作者头像 李华
网站建设 2026/7/4 22:36:25

实体商家免费入驻家家有平台,成为联盟商家超详细教程!

想解锁海量客源、沉淀私域流量&#xff0c;还能拿盈利分红&#xff1f;免费入驻家家有联盟商家&#xff0c;零成本享曝光、引客流、增收益&#xff0c;手把手教程帮你快速入驻&#xff0c;轻松盘活店铺生意&#xff01;01成为联盟商家核心优势1.共享平台会员资源&#xff0c;精…

作者头像 李华
网站建设 2026/7/1 20:31:42

材料中心物流信息管理系统的设计与实现

摘  要 近年来&#xff0c;伴随着互联网技术的快速发展和大力应用&#xff0c;各种信息化软件应运而生。当下&#xff0c;随着国内经济由于疫情的影响在全面复苏&#xff0c;各大企业也在注重企业材料成本的管控。在此之前&#xff0c;各大企业针对生产环节中的材料管理都是依…

作者头像 李华
网站建设 2026/7/2 18:13:08

网络基础概念

⽹络基础概念 ⽹络发展 独⽴模式: 计算机之间相互独⽴;&#xff08;在此阶段下&#xff1a;资源无法共享、协作效率低下、运维成本高&#xff09; ⽹络互联: 多台计算机连接在⼀起, 完成数据共享;&#xff08;网络互联实现数据共享优势是打破资源孤岛&#xff0c;但是也带来…

作者头像 李华