所学的java基础写的存取,转账,查看信息等
Java Mysql
有关的所有类和接口
UserDao
```jpackage com.libangzhen.dao;
import java.util.List;
import com.libangzhen.pojo.User;
public interface UserDao {
int insertUser(User user);
int deleteUser(String account);
int updateUser(User user);
User selectUser(String account,String password);
List<User> selectListUser();
boolean isExist(String account);
int updateMoney(User user);
int tranfer(User userOut,User userIn);
User selectByAccount(String account);
}
UserRecordDao
package com.libangzhen.dao;
import java.util.List;
import com.libangzhen.pojo.UserRecord;
public interface UserRecordDao {
List<UserRecord> selectAccountRecord(String account);
int insertRecord(UserRecord userRecord);
}
UserDaoImpl
package com.libangzhen.daoImpl;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.libangzhen.dao.UserDao;
import com.libangzhen.pojo.User;
import com.libangzhen.utils.DruidUtils;
public class UserDaoImpl implements UserDao {
@Override
public int insertUser(User user) {
QueryRunner queryRunner = new QueryRunner();
String sql = "insert into user values(default,?,?,?,?,?,?)";
System.out.println(user);
try {
int index = queryRunner.update(DruidUtils.getConnection(),sql,user.getAccount(),user.getUserName(),user.getSex(),user.getPhone(),user.getPassword(),user.getMoney());
return index;
} catch (Exception e) {
// TODO: handle exception
}
return 0;
}
@Override
public int deleteUser(String account) {
QueryRunner queryRunner = new QueryRunner();
String sql = "delete from user where account=?";
try {
int index = queryRunner.update(DruidUtils.getConnection(),sql,account);
return index;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
@Override
public int updateUser(User user) {
QueryRunner queryRunner = new QueryRunner();
String sql = "update user set userName=?,sex=?,phone=?,password=? where account=?";
try {
int index = queryRunner.update(DruidUtils.getConnection(),sql,user.getUserName(),user.getSex(),user.getPhone(),user.getPassword(),user.getAccount());
return index;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
@Override
public User selectUser(String account, String password) {
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from user where account=? and password=?";
try {
User user = queryRunner.query(DruidUtils.getConnection(),sql,new BeanHandler<>(User.class),account,password);
return user;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public List<User> selectListUser() {
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from user";
try {
List<User> list = queryRunner.query(DruidUtils.getConnection(),sql,new BeanListHandler<>(User.class));
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public boolean isExist(String account) {
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from user where account=?";
try {
User user = queryRunner.query(DruidUtils.getConnection(), sql,new BeanHandler<>(User.class),account);
if (user==null) {
return false;
}else {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
@Override
public int updateMoney(User user) {
QueryRunner queryRunner = new QueryRunner();
String sql = "update user set money=? where account=?";
try {
int index = queryRunner.update(DruidUtils.getConnection(),sql,user.getMoney(),user.getAccount());
return index;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
@Override
public int tranfer(User userOut, User userIn) {
QueryRunner queryRunner = new QueryRunner();
String sql = "update user set money=? where account=?";
String sqls = "update user set money=? where account=?";
try {
int index = queryRunner.update(DruidUtils.getConnection(),sql,userOut.getMoney(),userOut.getAccount());
int index1 = queryRunner.update(DruidUtils.getConnection(),sqls,userIn.getMoney(),userIn.getAccount());
if (index>0 && index1>0) {
return 1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
@Override
public User selectByAccount(String account) {
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from user where account=?";
try {
User user = queryRunner.query(DruidUtils.getConnection(), sql,new BeanHandler<>(User.class),account);
return user;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
UserRecordImpl
package com.libangzhen.daoImpl;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.libangzhen.dao.UserRecordDao;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.utils.DruidUtils;
public class UserRecordDaoImpl implements UserRecordDao{
@Override
public List<UserRecord> selectAccountRecord(String account) {
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from userrecord where account=?";
try {
List<UserRecord> list = queryRunner.query(DruidUtils.getConnection(),sql,new BeanListHandler<>(UserRecord.class),account);
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public int insertRecord(UserRecord userRecord) {
QueryRunner queryRunner = new QueryRunner();
String sql = "insert into userrecord values(default,?,?,?,?)";
try {
int index = queryRunner.update(DruidUtils.getConnection(),sql,userRecord.getAccount(),userRecord.getUserName(),userRecord.getTime(),userRecord.getMoney());
return index;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}
LoginUI
package com.libangzhen.ui;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class LoginUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userservice = new UserServiceImpl();
public static void main(String[] args) {
new LoginUI();
}
public LoginUI() {
Container container = getContentPane();
setLayout(null);
setTitle("银行登录"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 600, 500); //框架的大小和位置
JLabel jlAccount = new JLabel("账号");
jlAccount.setBounds(170, 130, 100, 40);
jlAccount.setForeground(Color.white);
jlAccount.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlAccount);
JLabel JlPassword = new JLabel("密码");
JlPassword.setBounds(170, 230, 100, 40);
JlPassword.setForeground(Color.white);
JlPassword.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(JlPassword);
JTextField jtAccount = new JTextField();
jtAccount.setBounds(230, 135, 150, 30);
jtAccount.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtAccount);
JPasswordField jtPassword = new JPasswordField();
jtPassword.setBounds(230, 237, 150, 30);
jtPassword.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtPassword);
JButton jbRegist = new JButton("注册");
jbRegist.setBounds(150, 300, 90, 33);
jbRegist.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jbRegist);
jbRegist.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new RegistUI();
}
});
JButton jbLogin = new JButton("登录");
jbLogin.setBounds(350, 300, 90, 33);
jbLogin.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jbLogin);
jbLogin.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String account = jtAccount.getText();
@SuppressWarnings("deprecation")
String password = jtPassword.getText();
if (account.equals("")) {
JOptionPane.showMessageDialog(null, "用户名不能为空");
}else {
if (password.equals("")) {
JOptionPane.showMessageDialog(null, "密码不能为空");
}else {
User user = userservice.selectUser(account, password);
if (user != null) {
dispose();
new Menu(user);
}else {
JOptionPane.showMessageDialog(null, "用户名或密码错误");
}
}
}
}
});
ImageIcon icon = new ImageIcon("image/1.jpg");
JLabel image = new JLabel(icon);
((JComponent) container).setOpaque(false);
image.setBounds(0,0, 600, 500);
container.add(image);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
DepositUI
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class DepositUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
private UserRecordService userRecordService = new UserRecordServiceImpl();
public DepositUI(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("存款"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 600, 500); //框架的大小和位置
JLabel jLabel = new JLabel("请输入存款金额");
jLabel.setBounds(120, 70, 200, 40);
jLabel.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jLabel);
JTextField jField = new JTextField();
jField.setBounds(220, 150, 100, 30);
jField.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jField);
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(120, 250, 70, 30);
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new Menu(user);
}
});
JButton jbSure = new JButton("存款");
jbSure.setBounds(330, 250, 70, 30);
container.add(jbSure);
jbSure.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String money_1 = jField.getText();
if (money_1.equals("")) {
JOptionPane.showMessageDialog(null, "金额不能为空");
}else {
try {
double money_2 = Double.parseDouble(money_1);
double money = user.getMoney() + money_2;
user.setMoney(money);
int index = userService.updateMoney(user);
if (index>0) {
Date date = new Date();
Timestamp timestamp1 = new Timestamp(date.getTime());
String aString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp1);
UserRecord userRecord = new UserRecord();
userRecord.setAccount(user.getAccount());
userRecord.setUserName(user.getUserName());
userRecord.setTime(aString);
userRecord.setMoney(money_2);
int index1 = userRecordService.insertRecord(userRecord);
if(index1>0) {
JOptionPane.showMessageDialog(null, "存款成功");
}else {
JOptionPane.showMessageDialog(null, "存款失败");
dispose();
new DepositUI(user);
}
}else {
JOptionPane.showMessageDialog(null, "存款失败");
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "输入金额错误");
}
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
MenuUI
package com.libangzhen.ui;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class Menu extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
public Menu(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("银行菜单"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 150, 700, 800); //框架的大小和位置
JButton jbDeposit = new JButton("存款");
jbDeposit.setBounds(50, 50, 150, 80);
jbDeposit.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbDeposit.setContentAreaFilled(false);//透明
jbDeposit.setBorderPainted(false); //消去边框
jbDeposit.setForeground(Color.red);
container.add(jbDeposit);
jbDeposit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new DepositUI(user);
}
});
JButton jbWithdrawal = new JButton("取款");
jbWithdrawal.setBounds(450, 50, 150, 80);
jbWithdrawal.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbWithdrawal.setContentAreaFilled(false);//透明
jbWithdrawal.setBorderPainted(false); //消去边框
jbWithdrawal.setForeground(Color.red);
container.add(jbWithdrawal);
jbWithdrawal.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new WithdrawalUI(user);
}
});
JButton jbPerson = new JButton("个人信息");
jbPerson.setBounds(450, 250, 150, 80);
jbPerson.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbPerson.setContentAreaFilled(false);//透明
jbPerson.setBorderPainted(false); //消去边框
jbPerson.setForeground(Color.red);
container.add(jbPerson);
jbPerson.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new PersonUI(user);
}
});
JButton jbUpdatePerson = new JButton("修改信息");
jbUpdatePerson.setBounds(50, 250, 150, 80);
jbUpdatePerson.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbUpdatePerson.setContentAreaFilled(false);//透明
jbUpdatePerson.setBorderPainted(false); //消去边框
jbUpdatePerson.setForeground(Color.red);
container.add(jbUpdatePerson);
jbUpdatePerson.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new UpdatePersonUI(user);
}
});
JButton jbDeletePerson = new JButton("注销用户");
jbDeletePerson.setBounds(450, 450, 150, 80);
jbDeletePerson.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbDeletePerson.setContentAreaFilled(false);//透明
jbDeletePerson.setBorderPainted(false); //消去边框
jbDeletePerson.setForeground(Color.red);
container.add(jbDeletePerson);
jbDeletePerson.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int index = userService.deleteUser(user.getAccount());
if (index>0) {
JOptionPane.showMessageDialog(null, "用户注销成功");
dispose();
}else {
JOptionPane.showMessageDialog(null, "用户注销失败");
}
}
});
JButton jbTransfer = new JButton("转账");
jbTransfer.setBounds(50, 450, 150, 80);
jbTransfer.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbTransfer.setContentAreaFilled(false);//透明
jbTransfer.setBorderPainted(false); //消去边框
jbTransfer.setForeground(Color.red);
container.add(jbTransfer);
jbTransfer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new TransferUI(user);
}
});
JButton jbRecord = new JButton("存取记录");
jbRecord.setBounds(50, 650, 150, 80);
jbRecord.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbRecord.setContentAreaFilled(false);//透明
jbRecord.setBorderPainted(false); //消去边框
jbRecord.setForeground(Color.red);
container.add(jbRecord);
jbRecord.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new PersonRecord(user);
}
});
JButton jbExit = new JButton("退出");
jbExit.setBounds(450, 650, 150, 80);
jbExit.setFont(new java.awt.Font("宋体", 0, 27)); //设置字体大小
jbExit.setContentAreaFilled(false);//透明
jbExit.setBorderPainted(false); //消去边框
jbExit.setForeground(Color.red);
container.add(jbExit);
jbExit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
ImageIcon icon = new ImageIcon("image/ti.jpg");
JLabel image = new JLabel(icon);
((JComponent) container).setOpaque(false);
image.setBounds(0,0, 700, 800);
container.add(image);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
PersonRecord.java
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
public class PersonRecord extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserRecordService userRecordService = new UserRecordServiceImpl();
public PersonRecord(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("银行记录"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 600, 700); //框架的大小和位置
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(200, 550, 100, 40);
jbCancel.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
jbCancel.setContentAreaFilled(false);//透明
jbCancel.setBorderPainted(false); //消去边框
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new Menu(user);
}
});
DefaultTableModel defaultTableModel = new DefaultTableModel();
defaultTableModel.setColumnIdentifiers(new Object[] {"账号","姓名","时间","金额",});
List<UserRecord> list = userRecordService.selectAccountRecord(user.getAccount());
for (UserRecord userRecord : list) {
defaultTableModel.addRow(new Object[] {
userRecord.getAccount(),
userRecord.getUserName(),
userRecord.getTime(),
userRecord.getMoney()
});
};
JTable fk = new JTable(defaultTableModel);
JScrollPane jScrollPane = new JScrollPane(fk);
jScrollPane.setBounds(10, 10, 560, 500);
container.add(jScrollPane);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
PersonUI.java
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import com.libangzhen.pojo.User;
public class PersonUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public PersonUI(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("个人信息"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 600, 700); //框架的大小和位置
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(0, 0, 100, 30);
jbCancel.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
jbCancel.setContentAreaFilled(false);//透明
jbCancel.setBorderPainted(false); //消去边框
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new Menu(user);
}
});
JLabel jlAccount = new JLabel("账号: "+user.getAccount());
jlAccount.setBounds(150, 50, 300, 40);
jlAccount.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jlAccount);
JLabel jlPassword = new JLabel("密码: "+user.getPassword());
jlPassword.setBounds(150, 150, 300, 40);
jlPassword.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jlPassword);
JLabel jlName = new JLabel("姓名: "+user.getUserName());
jlName.setBounds(150, 250, 300, 40);
jlName.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jlName);
JLabel jlSex = new JLabel("性别: "+user.getSex());
jlSex.setBounds(150, 350, 300, 40);
jlSex.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jlSex);
JLabel jlPhone = new JLabel("手机号: "+user.getPhone());
jlPhone.setBounds(123, 450, 300, 40);
jlPhone.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jlPhone);
JLabel jlMoney = new JLabel("金额: "+user.getMoney());
jlMoney.setBounds(150, 550, 300, 40);
jlMoney.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jlMoney);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
RegistUI.java
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class RegistUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
public static void main(String[] args) {
new RegistUI();
}
public RegistUI() {
Container container = getContentPane();
setLayout(null);
setTitle("存款"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 700, 700); //框架的大小和位置
JLabel jlAccount = new JLabel("账号");
jlAccount.setBounds(170, 70, 100, 40);
jlAccount.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlAccount);
JTextField jtAccount = new JTextField();
jtAccount.setBounds(255, 78, 150, 30);
jtAccount.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtAccount);
JLabel jlPassword = new JLabel("密码");
jlPassword.setBounds(170, 140, 100, 40);
jlPassword.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlPassword);
JTextField jtPassword = new JTextField();
jtPassword.setBounds(255, 148, 150, 30);
jtPassword.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtPassword);
JLabel jlName = new JLabel("姓名");
jlName.setBounds(170, 210, 100, 40);
jlName.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlName);
JTextField jtName = new JTextField();
jtName.setBounds(255, 218, 150, 30);
jtName.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtName);
JLabel jlSex = new JLabel("性别");
jlSex.setBounds(170, 280, 100, 40);
jlSex.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlSex);
JComboBox<String> jtSex=new JComboBox<String>(); //创建JComboBox
jtSex.addItem("--请选择--"); //向下拉列表中添加一项
jtSex.addItem("男");
jtSex.addItem("女");
jtSex.setBounds(255, 288, 150, 30);
jtSex.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtSex);
JLabel jlPhone = new JLabel("手机号");
jlPhone.setBounds(155, 350, 100, 40);
jlPhone.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlPhone);
JTextField jtPhone = new JTextField();
jtPhone.setBounds(255, 358, 150, 30);
jtPhone.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtPhone);
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(150, 440, 100, 30);
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new LoginUI();
}
});
JButton jbSure = new JButton("确认");
jbSure.setBounds(400, 440, 100, 30);
container.add(jbSure);
jbSure.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String account = jtAccount.getText();
String password = jtPassword.getText();
String name = jtName.getText();
int sex = jtSex.getSelectedIndex();
String phone = jtPhone.getText();
if (sex == 0) {
JOptionPane.showMessageDialog(null, "请选择性别");
}else {
String se = "";
if (sex == 1) {
se = "男";
}else {
se = "女";
}
if (account.equals("")) {
JOptionPane.showMessageDialog(null, "请输入账号");
}else {
if (password.equals("")) {
JOptionPane.showMessageDialog(null, "请输入密码");
}else {
if (name.equals("")) {
JOptionPane.showMessageDialog(null, "请输入姓名");
}else {
if (phone.equals("")) {
JOptionPane.showMessageDialog(null, "请输入手机号");
}else {
if (phone.length() != 11) {
JOptionPane.showMessageDialog(null, "请输入正确的手机号");
}else {
boolean exist = userService.isExist(account);
if (exist) {
JOptionPane.showMessageDialog(null, "账号已存在");
}else {
User user= new User();
user.setAccount(account);
user.setPassword(password);
user.setSex(se);
user.setUserName(name);
user.setPhone(phone);
int index = userService.insertUser(user);
if (index > 0) {
JOptionPane.showMessageDialog(null, "注册成功");
}else {
JOptionPane.showMessageDialog(null, "注册失败");
}
}
}
}
}
}
}
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
TransferUI.java
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class TransferUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
private UserRecordService userRecordService = new UserRecordServiceImpl();
public TransferUI(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("转账"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 600, 500); //框架的大小和位置
JLabel jLabel = new JLabel("请输入转账账号");
jLabel.setBounds(120, 70, 200, 40);
jLabel.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jLabel);
JTextField jField = new JTextField();
jField.setBounds(220, 130, 150, 30);
jField.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jField);
JLabel jLabel_1 = new JLabel("请输入转账金额");
jLabel_1.setBounds(120, 170, 200, 40);
jLabel_1.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jLabel_1);
JTextField jField_1 = new JTextField();
jField_1.setBounds(220, 230, 150, 30);
jField_1.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jField_1);
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(120, 300, 70, 30);
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new Menu(user);
}
});
JButton jbSure = new JButton("转账");
jbSure.setBounds(330, 300, 70, 30);
container.add(jbSure);
jbSure.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String account = jField.getText();
if (account.equals("")) {
JOptionPane.showMessageDialog(null, "账号不能为空");
}else {
User users = userService.selectByAccount(account);
if (users == null) {
JOptionPane.showMessageDialog(null, "账号不存在");
}else {
String money_1 = jField_1.getText();
if (money_1.equals("")) {
JOptionPane.showMessageDialog(null, "金额不能为空");
}else {
try {
double money_2 = Double.parseDouble(money_1);
double money = user.getMoney() - money_2;
if (money<0) {
JOptionPane.showMessageDialog(null, "金额不足");
}else {
if (user.getAccount().equals(users.getAccount())) {
JOptionPane.showMessageDialog(null, "对不起不能和自己转账");
}else {
System.out.println(user.getMoney()+"开始");
System.out.println(users.getMoney()+"结束");
double moneys = users.getMoney()+money_2;
user.setMoney(money);
users.setMoney(moneys);
System.out.println(user.getMoney()+"输出");
System.out.println(users.getMoney()+"输入");
int index = userService.tranfer(user, users);
System.out.println(index+"哈哈");
if (index>0) {
System.out.println("进来了");
Date date = new Date();
Timestamp timestamp1 = new Timestamp(date.getTime());
String aString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp1);
UserRecord userRecord = new UserRecord();
userRecord.setAccount(user.getAccount());
userRecord.setUserName(user.getUserName());
userRecord.setTime(aString);
userRecord.setMoney(0-money_2);
int index1 = userRecordService.insertRecord(userRecord);
System.out.println(index1+"diyi");
UserRecord userRecords = new UserRecord();
userRecords.setAccount(users.getAccount());
userRecords.setUserName(users.getUserName());
userRecords.setTime(aString);
userRecords.setMoney(money_2);
int index2 = userRecordService.insertRecord(userRecords);
System.out.println(index2+"dier");
if (index2>0 && index1>0) {
JOptionPane.showMessageDialog(null, "转账成功");
}else {
JOptionPane.showMessageDialog(null, "转账失败");
}
}else {
JOptionPane.showMessageDialog(null, "转账失败");
}
}
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "金额错误");
}
}
}
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
UpdatePersonUI.java
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class UpdatePersonUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
public UpdatePersonUI(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("存款"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 700, 700); //框架的大小和位置
JLabel jlAccount = new JLabel("账号 " + user.getAccount());
jlAccount.setBounds(170, 70, 400, 40);
jlAccount.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlAccount);
JLabel jlPassword = new JLabel("密码");
jlPassword.setBounds(170, 140, 100, 40);
jlPassword.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlPassword);
JTextField jtPassword = new JTextField();
jtPassword.setBounds(255, 148, 150, 30);
jtPassword.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
jtPassword.setText(user.getPassword());
container.add(jtPassword);
JLabel jlName = new JLabel("姓名");
jlName.setBounds(170, 210, 100, 40);
jlName.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlName);
JTextField jtName = new JTextField();
jtName.setBounds(255, 218, 150, 30);
jtName.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
jtName.setText(user.getUserName());
container.add(jtName);
JLabel jlSex = new JLabel("性别");
jlSex.setBounds(170, 280, 100, 40);
jlSex.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlSex);
JComboBox<String> jtSex=new JComboBox<String>(); //创建JComboBox
jtSex.addItem("--请选择--"); //向下拉列表中添加一项
jtSex.addItem("男");
jtSex.addItem("女");
jtSex.setBounds(255, 288, 150, 30);
jtSex.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jtSex);
JLabel jlPhone = new JLabel("手机号");
jlPhone.setBounds(155, 350, 100, 40);
jlPhone.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
container.add(jlPhone);
JTextField jtPhone = new JTextField();
jtPhone.setBounds(255, 358, 150, 30);
jtPhone.setFont(new java.awt.Font("宋体", 0, 24)); //设置字体大小
jtPhone.setText(user.getPhone());
container.add(jtPhone);
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(150, 440, 100, 30);
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new Menu(user);
}
});
JButton jbSure = new JButton("确认");
jbSure.setBounds(400, 440, 100, 30);
container.add(jbSure);
jbSure.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = jtName.getText();
String password = jtPassword.getText();
String phone = jtPhone.getText();
int sex = jtSex.getSelectedIndex();
if (sex == 0) {
JOptionPane.showMessageDialog(null, "请选择性别");
}else {
String se = "";
if (sex == 1) {
se = "男";
}else {
se = "女";
}
if (password.equals("")) {
JOptionPane.showMessageDialog(null, "请输入密码");
}else {
if (phone.equals("")) {
JOptionPane.showMessageDialog(null, "请输入手机号");
}else {
if (name.equals("")) {
JOptionPane.showMessageDialog(null, "请输入姓名");
}else {
user.setUserName(name);
user.setPassword(password);
user.setPhone(phone);
user.setSex(se);
int index = userService.updateUser(user);
if (index>0) {
JOptionPane.showMessageDialog(null, "修改成功");
}else {
JOptionPane.showMessageDialog(null, "修改失败");
}
}
}
}
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
WithdrawalUI.java
package com.libangzhen.ui;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
import com.libangzhen.serviceImpl.UserServiceImpl;
public class WithdrawalUI extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserService userService = new UserServiceImpl();
private UserRecordService userRecordService = new UserRecordServiceImpl();
public WithdrawalUI(User user) {
Container container = getContentPane();
setLayout(null);
setTitle("取款"); //设置框体的标题
setLayeredPane(getLayeredPane());
setBounds(700, 200, 600, 500); //框架的大小和位置
JLabel jLabel = new JLabel("请输入取款金额");
jLabel.setBounds(120, 70, 200, 40);
jLabel.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jLabel);
JTextField jField = new JTextField();
jField.setBounds(220, 150, 100, 30);
jField.setFont(new java.awt.Font("宋体", 0, 20)); //设置字体大小
container.add(jField);
JButton jbCancel = new JButton("返回");
jbCancel.setBounds(120, 250, 70, 30);
container.add(jbCancel);
jbCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
new Menu(user);
}
});
JButton jbSure = new JButton("取款");
jbSure.setBounds(330, 250, 70, 30);
container.add(jbSure);
jbSure.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String money_1 = jField.getText();
if (money_1.equals("")) {
JOptionPane.showMessageDialog(null, "金额不能为空");
}else {
try {
double money_2 = Double.parseDouble(money_1);
double money = user.getMoney() - money_2;
if (money < 0) {
JOptionPane.showMessageDialog(null, "金额不足");
}else {
user.setMoney(money);
int index = userService.updateMoney(user);
if (index>0) {
Date date = new Date();
Timestamp timestamp1 = new Timestamp(date.getTime());
String aString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp1);
UserRecord userRecord = new UserRecord();
userRecord.setAccount(user.getAccount());
userRecord.setUserName(user.getUserName());
userRecord.setTime(aString);
userRecord.setMoney(-money_2);
int index1 = userRecordService.insertRecord(userRecord);
if(index1>0) {
JOptionPane.showMessageDialog(null, "取款成功");
}else {
JOptionPane.showMessageDialog(null, "取款失败");
}
}else {
JOptionPane.showMessageDialog(null, "取款失败");
}
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "输入金额错误");
}
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);//可视化
}
}
DruidUtils.java
package com.libangzhen.utils;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DruidUtils {
private static DataSource source;
static {
try {
Properties properties = new Properties();
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");
properties.load(is);
source = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
Connection conn = source.getConnection();
return conn;
}
public static void closeResource(Connection conn,Statement ps) {
try {
if(ps != null)
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 关闭资源
* @param conn
* @param ps
* @param res
*/
public static void closeResource(Connection conn,PreparedStatement ps,ResultSet res) {
try {
if(res != null)
res.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if(ps != null)
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
用到的jar包
最后运行的效果图
有不足的地方,欢迎大家提出。