Java实现ATM系统超全面步骤解读
1. 前言
ATM系统是日常生活中经常使用的自助银行系统,本文将介绍如何使用Java完成ATM系统的开发。该系统主要包括用户登录、查询账户信息、存款、取款、转账等基本功能。
2. 数据库设计
在开发ATM系统之前,需要先进行数据库设计。具体步骤如下:
2.1. 创建数据库
首先需要在MySQL数据库中创建一个名为ATM
的数据库。
CREATE DATABASE ATM;
2.2. 创建数据表
在ATM
数据库中创建一个名为user
的数据表。
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
balance DOUBLE NOT NULL,
PRIMARY KEY (id)
);
其中,字段id
为自增主键,name
为用户名,password
为密码,balance
为账户余额。
3. Java代码实现
3.1. 连接数据库
使用Java程序连接MySQL数据库需要使用JDBC驱动,需要先将JDBC驱动包添加到工程中。
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ATM", "root", "123456");
其中,com.mysql.jdbc.Driver
是MySQL的JDBC驱动类,localhost:3306
为MySQL服务器地址和端口号,ATM
为数据库名,root
为数据库用户名,123456
为数据库密码。
3.2. 用户登录
用户登录需要用户输入用户名和密码,并将其与数据库中的用户信息进行比对。
Scanner input = new Scanner(System.in);
System.out.print("请输入用户名:");
String name = input.nextLine();
System.out.print("请输入密码:");
String password = input.nextLine();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM user WHERE name=? AND password=?");
ps.setString(1, name);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
3.3. 查询账户信息
查询账户信息需要根据用户输入的用户名,在数据库中查询该用户的相关信息。
System.out.print("请输入用户名:");
String name = input.nextLine();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM user WHERE name=?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
System.out.println("账户余额:" + rs.getDouble("balance"));
} else {
System.out.println("用户名不存在!");
}
3.4. 存款
存款需要用户输入存款金额,并将其加入到用户在数据库中的账户余额中。
System.out.print("请输入存款金额:");
double amount = input.nextDouble();
PreparedStatement ps = conn.prepareStatement("UPDATE user SET balance=balance+? WHERE name=?");
ps.setDouble(1, amount);
ps.setString(2, name);
int result = ps.executeUpdate();
if(result > 0) {
System.out.println("存款成功!");
} else {
System.out.println("存款失败!");
}
3.5. 取款
取款需要用户输入取款金额,并将其从用户在数据库中的账户余额中扣除。
System.out.print("请输入取款金额:");
double amount = input.nextDouble();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM user WHERE name=?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
double balance = rs.getDouble("balance");
if(balance >= amount) {
ps = conn.prepareStatement("UPDATE user SET balance=balance-? WHERE name=?");
ps.setDouble(1, amount);
ps.setString(2, name);
int result = ps.executeUpdate();
if(result > 0) {
System.out.println("取款成功!");
} else {
System.out.println("取款失败!");
}
} else {
System.out.println("余额不足!");
}
} else {
System.out.println("用户名不存在!");
}
3.6. 转账
转账需要用户输入转账金额和目标账户名,并将转账金额从用户账户余额中扣除,并将转账金额加入目标账户的余额中。
System.out.print("请输入转账金额:");
double amount = input.nextDouble();
input.nextLine();
System.out.print("请输入目标账户名:");
String targetName = input.nextLine();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM user WHERE name=?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
double balance = rs.getDouble("balance");
if(balance >= amount) {
ps = conn.prepareStatement("SELECT * FROM user WHERE name=?");
ps.setString(1, targetName);
rs = ps.executeQuery();
if(rs.next()) {
ps = conn.prepareStatement("UPDATE user SET balance=balance-? WHERE name=?");
ps.setDouble(1, amount);
ps.setString(2, name);
ps.executeUpdate();
ps = conn.prepareStatement("UPDATE user SET balance=balance+? WHERE name=?");
ps.setDouble(1, amount);
ps.setString(2, targetName);
int result = ps.executeUpdate();
if(result > 0) {
System.out.println("转账成功!");
} else {
System.out.println("转账失败!");
}
} else {
System.out.println("目标账户不存在!");
}
} else {
System.out.println("余额不足!");
}
} else {
System.out.println("用户名不存在!");
}
4. 总结
本文详细讲解了Java实现ATM系统的步骤,包括数据库设计以及Java代码实现。通过本文的学习,读者可以掌握如何使用Java开发一个简单的ATM系统。
5. 示例说明
5.1. 用户登录
请输入用户名:admin
请输入密码:123456
登录成功!
5.2. 查询账户信息
请输入用户名:admin
账户余额:1000.0
5.3. 存款
请输入用户名:admin
请输入存款金额:500
存款成功!
5.4. 取款
请输入用户名:admin
请输入取款金额:800
余额不足!
5.5. 转账
请输入用户名:admin
请输入转账金额:500
请输入目标账户名:test
转账成功!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现ATM系统超全面步骤解读建议收藏 - Python技术站