Java 迷你银行应用程序开发实战

在这个迷你银行应用程序项目中,我们将利用 JDBC 技术来连接并操作数据库,从而实现用户账户和交易的管理。通过 JDBC,我们不仅能执行可靠的 SQL 操作,还能妥善处理事务。

在 JDBC 的机制中,事务被视为一个单一的工作单元。通过设置 INLINECODE29100601,我们可以将多个 SQL 语句分组执行,只有调用 INLINECODE3cbab65c 时更改才会真正保存。如果在此过程中任何语句执行失败,回滚(rollback)机制将确保数据的一致性。

该应用程序提供了一个菜单驱动的控制台界面,允许用户执行以下操作:

  • 创建账户
  • 登录账户
  • 查看余额
  • 向其他客户转账

前置准备

> – MySQL

> – Eclipse

> – MySQL JDBC Connector (JAR)

逐步实施指南

第一步:Eclipse 项目搭建

1. 创建 Java 项目:

  • 打开 Eclipse。
  • 点击 File -> New -> Java Project -> 将项目命名为 MiniBankingApp。

2. 创建包

  • 右键点击 src -> New -> Package -> 将其命名为:banking。

3. 创建 Java 类

在 banking 包内,创建以下文件:

  • bank.java
  • bankManagement.java
  • connection.java

项目结构:

!image

4. 添加 MySQL JDBC Connector

  • 下载 MySQL JDBC Connector .jar 文件。
  • 在你的项目中创建一个名为 lib 的文件夹。
  • 将 .jar 文件复制到 lib 文件夹中。
  • 右键点击项目 -> Build Path -> Configure Build Path -> Libraries -> Add External JARs -> 选择下载的连接器文件。

第二步:数据库设置

创建名为 bank 的数据库

> CREATE DATABASE BANK;

创建名为 customer 的表

Java


CODEBLOCK_967dfcb3

!outoutput

第三步:创建数据库连接类

这个类用于加载 JDBC 驱动并建立数据库连接。我们将使用 DriverManager.getConnection() 方法,并传入 MySQL 的凭证信息。

connection.java

Java


CODEBLOCK_d148b16d

第四步:业务逻辑类

这个类处理核心操作,例如创建账户和资金转账。为了保证安全,我们将使用 PreparedStatement 来执行参数化查询。

bankmanagment.java

Java

`

package banking;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;

public class BankManagement {

    private static final int NULL = 0;
    static Connection con = Connection.getConnection();

    // 创建账户
    public static boolean createAccount(String name, int passCode) {
        if (name.isEmpty() || passCode == NULL) {
            System.out.println("All fields are required!");
            return false;
        }

        try {
            String sql = "INSERT INTO customer(cname, balance, pass_code) VALUES (?, 1000, ?)";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, name);
            ps.setInt(2, passCode);

            int rows = ps.executeUpdate();
            if (rows == 1) {
                System.out.println("Account created successfully! You can now login.");
                return true;
            }
        } catch (SQLIntegrityConstraintViolationException e) {
            System.out.println("Username already exists! Try another one.");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    // 登录账户
    public static boolean loginAccount(String name, int passCode) {
        if (name.isEmpty() || passCode == NULL) {
            System.out.println("All fields are required!");
            return false;
        }

        try {
            String sql = "SELECT * FROM customer WHERE cname = ? AND pass_code = ?";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, name);
            ps.setInt(2, passCode);
            ResultSet rs = ps.executeQuery();

            BufferedReader sc = new BufferedRead
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49776.html
点赞
0.00 平均评分 (0% 分数) - 0