Java与MySQL数据库交互实战指南

Java开发中的MySQL数据库操作实践

在当今软件开发领域,数据库扮演着至关重要的角色。作为主流的编程语言之一,Java为数据库操作提供了强大的支持。本指南将全面讲解如何使用Java程序连接MySQL数据库,并完成常见的数据操作任务。

一、前期准备工作

1.1 MySQL环境搭建

首先需要确保本地已安装MySQL数据库服务端。建议从MySQL官方网站获取最新稳定版本进行安装配置。

1.2 数据库结构设计

通过MySQL命令行工具执行以下SQL语句创建测试环境:

CREATE DATABASE practice_db;
USE practice_db;
CREATE TABLE account_info (
user_id INT AUTO_INCREMENT PRIMARY KEY,
login_name VARCHAR(50) UNIQUE NOT NULL,
login_pass VARCHAR(100) NOT NULL
);

1.3 项目依赖配置

对于使用Maven管理的Java项目,需在配置文件中添加数据库驱动依赖:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>

二、核心功能实现

2.1 建立数据库连接

创建专门的连接管理类处理数据库连接:

import java.sql.*;
public class DBConnector {
private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/practice_db";
private static final String DB_USER = "admin";
private static final String DB_PASS = "securePass123";
public static Connection createConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
} catch (Exception e) {
System.err.println("连接异常:" + e.getMessage());
return null;
}
}
}

2.2 数据新增操作

实现用户账号信息的存储功能:

public class AccountService {
public boolean registerAccount(String username, String password) {
String query = "INSERT INTO account_info(login_name, login_pass) VALUES(?,?)";
try (Connection conn = DBConnector.createConnection();
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, username);
stmt.setString(2, password);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
System.err.println("注册失败:" + e.getMessage());
return false;
}
}
}

2.3 数据查询功能

实现账号信息的检索功能:

public void displayAllAccounts() {
String query = "SELECT * FROM account_info";
try (Connection conn = DBConnector.createConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
while(rs.next()) {
System.out.printf("ID:%d 用户名:%s 密码:%s\n",
rs.getInt("user_id"),
rs.getString("login_name"),
rs.getString("login_pass"));
}
} catch (SQLException e) {
System.err.println("查询异常:" + e.getMessage());
}
}

2.4 数据更新操作

提供密码修改功能:

public boolean updateCredentials(int userId, String newPassword) {
String query = "UPDATE account_info SET login_pass = ? WHERE user_id = ?";
try (Connection conn = DBConnector.createConnection();
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, newPassword);
stmt.setInt(2, userId);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
System.err.println("更新失败:" + e.getMessage());
return false;
}
}

2.5 数据删除功能

实现账号注销功能:

public boolean removeAccount(int userId) {
String query = "DELETE FROM account_info WHERE user_id = ?";
try (Connection conn = DBConnector.createConnection();
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setInt(1, userId);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
System.err.println("删除失败:" + e.getMessage());
return false;
}
}

三、功能测试验证

创建测试类验证各项功能:

public class TestRunner {
public static void main(String[] args) {
AccountService service = new AccountService();
// 测试数据新增
service.registerAccount("testUser", "initialPass");
// 测试数据查询
service.displayAllAccounts();
// 测试数据更新
service.updateCredentials(1, "updatedPass");
// 测试数据删除
service.removeAccount(1);
}
}

四、关键要点总结

本指南详细演示了:
- 数据库连接:通过JDBC建立与MySQL的通信
- CRUD操作:完整的数据增删改查流程实现
- 安全实践:使用预处理语句防范SQL注入攻击
对于生产环境,建议采用连接池技术(如HikariCP)优化性能,或使用JPA/Hibernate等ORM框架提升开发效率。掌握这些基础操作后,开发者可以更高效地进行Java数据库应用开发。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/10224.html

(0)
LomuLomu
上一篇 2025 年 5 月 19 日 上午3:29
下一篇 2025 年 5 月 19 日 上午4:27

相关推荐

  • 促销系统:促销活动、优惠券、优惠规则概念模型设计

    大家好,我是汤师爷~ 概念模型设计是促销系统开发的关键环节,我们需要基于之前的功能分析,将复杂的促销业务拆解成清晰的领域概念,这些概念之间的关系界定和边界划分,将直接决定系统的可维护性和扩展性。 促销系统核心概念模型 通过对促销业务的分析,我们可以抽象出促销系统的关键概念模型。 1、促销活动模型 促销活动模型对活动的各个要素和规则进行抽象,包含活动名称、描述…

    2025 年 1 月 11 日
    29200
  • manim边做边学–动画更新

    今天介绍Manim中用于动画更新的3个类 ,分别是: UpdateFromFunc:根据自定义的函数来动态更新 Mobject 的属性 UpdateFromAlphaFunc:根据动画的进度来平滑地改变 Mobject 的属性 MaintainPositionRelativeTo:保持多个 Mobject 之间的相对位置关系 这3个类 分别从自定义更新、基于…

    2025 年 1 月 12 日
    42900
  • 使用Docker部署的基于binlog实现Mysql8

    概念 MySQL 基于 Binlog 的主从复制(Master-Slave Replication)是 MySQL 数据库中实现数据复制的一种机制。在这种复制模式下,主库(Master)记录所有对数据库的修改操作(如 INSERT、UPDATE、DELETE 等)到 二进制日志(Binlog) ,从库(Slave)则读取这些日志并执行相同的操作,从而保持与主…

    未分类 2025 年 1 月 11 日
    28500
  • Java怎样实现将数据导出为Word文档

    文章首发于我的博客:Java怎样实现将数据导出为Word文档 – Liu Zijian’s Blog 我们在开发一些系统的时候,例如OA系统,经常能遇到将审批单数据导出为word和excel文档的需求,导出为excel是比较简单的,因为excel有单元格来供我们定位数据位置,但是word文档的格式不像表格那样可以轻松的定位,要想将数据导出为一些带有图片和表格…

    2025 年 1 月 14 日
    38900
  • python SQLAlchemy ORM——从零开始学习 04 如何过滤(筛选)数据库中的数据

    04 如何过滤(筛选)数据库中的数据 从数据库中获筛选数据主要应用以下几个接口:filter、filter_by、以及 where。前两个在 02已经展开说过,先展开说where接口 前情提要:依赖03提及的model【本质上就是数据库的链接,有可忽视】 当前的数据库表内容如下,仅作例子,不相同根据自身数据库操作即可: 4-1 通过where进行筛选 同时筛…

    2025 年 1 月 12 日
    40100

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信