Quản lý tài khoản ngân hàng - SOAP Web Service - Java Swing
Cơ sở dữ liệu
Cho cơ sở dữ liệu như sau:
drop table tblTransferHistory;
drop table tblDrawMoneyHistory;
drop table tblUser;
create table tblUser(
user_name varchar(20) primary key,
full_name varchar(50),
password varchar(20),
total_money float
);
create table tblTransferHistory(
id int primary key identity,
from_user_name varchar(20),
to_user_name varchar(20),
total_transfer float,
transfer_date date,
note varchar(50),
FOREIGN KEY (from_user_name) REFERENCES tblUser(user_name),
FOREIGN KEY (to_user_name) REFERENCES tblUser(user_name)
);
create table tblDrawMoneyHistory(
id int primary key identity,
user_name varchar(20),
total_draw float,
draw_date date,
FOREIGN KEY (user_name) REFERENCES tblUser(user_name)
);
insert into tblUser values('nguyencuong1', 'Nguyen Tien Tung', '123456', 1000000);
insert into tblUser values('nguyencuong2', 'Tran Tien Anh', '123456', 7000000);
insert into tblUser values('nguyencuong3', 'Ngo Huyen Anh', '123456', 3000000);
insert into tblUser values('nguyencuong4', 'Nguyen Thu Dieu', '123456', 6000000);
insert into tblTransferHistory values('nguyencuong1', 'nguyencuong2', 500, '12/12/2012', 'for buy a computer');
insert into tblTransferHistory values('nguyencuong1', 'nguyencuong3', 1500, '12/2/2012', 'for study fee');
insert into tblDrawMoneyHistory values('nguyencuong1', 200, '1/1/2013');
insert into tblDrawMoneyHistory values('nguyencuong1', 100, '2/22/2013');
select * from tblTransferHistory;
select * from tblUser;
select * from tblDrawMoneyHistory;
Q1. Tạo Web Services với các chức năng sau
1. Đăng nhập
-
Thông tin đăng nhập:
user_name,password -
Nếu đăng nhập thành công, trả về đầy đủ thông tin của user, bao gồm:
-
Thông tin lịch sử chuyển khoản (từ bảng
tblTransferHistory) -
Thông tin lịch sử rút tiền (từ bảng
tblDrawMoneyHistory)
-
2. Chuyển khoản
-
Thực hiện chuyển tiền từ tài khoản này sang tài khoản khác
-
Cụ thể: cộng tiền vào tài khoản nhận và trừ tiền từ tài khoản gửi
-
Yêu cầu kiểm tra:
-
Tài khoản nhận (
to_user_name) có tồn tại hay không-
Nếu không tồn tại → trả về thông báo cho client
-
Nếu tồn tại → thực hiện chuyển khoản
-
-
-
Ghi lại lịch sử chuyển khoản vào bảng
tblTransferHistory-
transfer_datelà ngày hiện tại của hệ thống
-
3. Rút tiền
-
Thực hiện rút tiền từ tài khoản đã đăng nhập
-
Cập nhật số tiền trong
total_money -
Yêu cầu kiểm tra:
-
Số tiền rút không được vượt quá số dư hiện có
-
Nếu vượt quá → trả về thông báo cho client
-
-
-
Ghi lại lịch sử rút tiền vào bảng
tblDrawMoneyHistory-
draw_datelà ngày hiện tại của hệ thống
-
Gợi ý triển khai
Cần tạo các Java class để mapping với các bảng trong CSDL:
-
User.java -
TransferHistory.java -
DrawMoneyHistory.java
Để trả về đầy đủ thông tin lịch sử chuyển khoản và rút tiền, lớp User cần bổ sung:
List<TransferHistory> tranHisList;
List<DrawMoneyHistory> drawHisList;
Để trả về thông báo lỗi cho client, cần xây dựng Exception riêng (custom exception) chứa message.
Q2. Tạo ứng dụng Swing để test các Web Services
Xây dựng Swing Application với các chức năng:
-
Login
-
Chuyển khoản
-
Rút tiền