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

相关推荐

  • (2025自测有效!)全网最好的python配置教程【非常非常适合小白】

    前几天我的电脑刚刚重装,把python重新配置了一下。 1.Python环境部署Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Python官网:https://www.python.org/ 进入官网在导航栏选择Dowmloads,选择所使用的系统(以Windows为例) 进入Windows下载页之后选择需要下载的版…

    2025 年 1 月 12 日
    36100
  • JavaScript 延迟加载的方法( 7种 )

    JavaScript脚本的延迟加载(也称为懒加载)是指在网页的主要内容已经加载并显示给用户之后,再加载或执行额外的JavaScript代码。这样做可以加快页面的初始加载速度,改善用户体验,并减少服务器的压力。 以下是几种常见的延迟加载JavaScript的方法: defer 属性: 使用 async 属性: async 属性告诉浏览器立即开始下载脚本,并且在…

    2025 年 1 月 5 日
    36000
  • 扣子又出新功能,支持一键部署小程序,太强了!!

    大家好,我是R哥。 作为一名程序员和技术博主,我一直关注如何使用工具提升生产力,尤其是在内容创作和应用开发领域。 拿我开发一个微信小程序为例,我需要懂前端、后端、运维 等全栈技术,开发流程和技术栈复杂,我还需要购买云服务器、云数据库 等各种基础设施,资源耗费非常多。 虽然现在有如 Cursor 这样的革命性 AI 开发工具,它突破了传统开发模式的壁垒,非开发…

    2025 年 1 月 10 日
    55700
  • MySQL

    阿里云社区https://developer.aliyun.com/mirror 目录 一:数据库 1.1 二: MySQL数据库基本操作 2.1 创建数据库: 2.2 使用某个数据库: 2.3 删除数据库: 2.4 查询支持的存储引擎 2.5 创建表: 2.6 查看表结构: 2.7 查看表结构详细信息: 2.8 删除表: 三:表的操作 3.1 修改表名字:…

    未分类 2025 年 1 月 12 日
    26400
  • Java刷题训练第一期

    个人主页:手握风云 专栏:Java刷题训练营 1. 字符转ASCII码 问题描述:BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,输入一个字符,输出该字符相应的ASCII码。 输入描述:一行,一个字符。 输出描述:一行,输出输入字符对应的ASCII码。 算法分析:在Java当中,没有针对字符的输入…

    2025 年 1 月 11 日
    17700

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信