├── BibmsJava ├── .gitignore └── src │ ├── Main │ └── Main.java │ ├── cn │ ├── dao │ │ ├── AccountDao.java │ │ ├── BaseDao.java │ │ ├── RoleDao.java │ │ ├── SalaryDao.java │ │ ├── TransferDao.java │ │ ├── UserDao.java │ │ └── impl │ │ │ ├── AccountDaoImpl.java │ │ │ ├── RoleDaoImpl.java │ │ │ ├── SalaryDaoImpl.java │ │ │ ├── TransferDaoImpl.java │ │ │ └── UserDaoImpl.java │ ├── entity │ │ ├── Account.java │ │ ├── Role.java │ │ ├── Salary.java │ │ ├── Transfer.java │ │ └── User.java │ └── service │ │ ├── AccountService.java │ │ ├── RoleService.java │ │ ├── SalaryService.java │ │ ├── UserService.java │ │ └── impl │ │ ├── AccountServiceImpl.java │ │ ├── RoleServciceImpl.java │ │ ├── SalaryServiceImpl.java │ │ └── UserServiceImpl.java │ └── db.properties ├── LICENSE ├── README.md ├── bibms(NonData).sql ├── 概要设计说明书.docx ├── 用户手册.docx └── 需求分析说明书.docx /BibmsJava/.gitignore: -------------------------------------------------------------------------------- 1 | # 编译输出 2 | /bin/ 3 | /target/ 4 | 5 | # Eclipse相关 6 | .project 7 | .classpath 8 | .settings/ 9 | /.metadata 10 | /.recommenders 11 | /.checkstyle 12 | 13 | # Maven相关 14 | /logs/ 15 | /target/ 16 | /!.mvn/wrapper/maven-wrapper.jar 17 | 18 | # Gradle相关 19 | /.gradle 20 | /build 21 | !gradle/wrapper/gradle-wrapper.jar 22 | !**/src/main/**/build/ 23 | !**/src/test/**/build/ 24 | 25 | # 日志文件 26 | *.log 27 | 28 | # 临时文件 29 | *.tmp 30 | *.temp 31 | *.bak 32 | *.swp 33 | 34 | # 系统文件 35 | .DS_Store 36 | Thumbs.db 37 | 38 | # IDE和编辑器配置文件 39 | .vscode/ 40 | .idea/ 41 | *.iml 42 | 43 | # 环境配置文件 44 | .env 45 | .env.local 46 | .env.development.local 47 | .env.test.local 48 | .env.production.local 49 | 50 | # Windows系统文件 51 | Desktop.ini 52 | -------------------------------------------------------------------------------- /BibmsJava/src/Main/Main.java: -------------------------------------------------------------------------------- 1 | package Main; 2 | import java.util.Scanner; 3 | 4 | import cn.dao.impl.AccountDaoImpl; 5 | import cn.dao.impl.TransferDaoImpl; 6 | import cn.entity.Transfer; 7 | import cn.entity.User; 8 | import cn.service.impl.AccountServiceImpl; 9 | import cn.service.impl.RoleServciceImpl; 10 | import cn.service.impl.SalaryServiceImpl; 11 | import cn.service.impl.UserServiceImpl; 12 | 13 | public class Main { 14 | public static void main(String[] args) { 15 | while (true) { 16 | Scanner input = new Scanner(System.in); 17 | System.out.println("========欢迎使用银行中间业务系统:========"); 18 | System.out.println("========本代码由Java第2小组呈现========"); 19 | System.out.println("=====" + "1.登录;2.注册;3.转账;4.退出======"); 20 | System.out.print("--->>>" + "请选择:"); 21 | int choice = input.nextInt(); 22 | if (choice == 1) { 23 | UserServiceImpl usi = new UserServiceImpl(); 24 | User user = new User(); 25 | user = usi.check(); 26 | if(user.getUserRole().equals("1")) { 27 | Role1(); 28 | RoleServciceImpl rsi = new RoleServciceImpl(); 29 | choice = input.nextInt(); 30 | if(choice == 1) rsi.Add(); 31 | else if(choice == 2) rsi.Search(); 32 | else if(choice == 3) rsi.Modify(); 33 | else { 34 | continue; 35 | } 36 | } 37 | else if(user.getUserRole().equals("2")){ 38 | Role2(); 39 | AccountServiceImpl asi = new AccountServiceImpl(); 40 | SalaryServiceImpl ssi = new SalaryServiceImpl(); 41 | choice = input.nextInt(); 42 | if(choice == 1) { 43 | //开户 44 | asi.register(); 45 | }else if(choice == 2) { 46 | //查询信息 47 | asi.searchInfo(); 48 | }else if(choice == 3) { 49 | //修改信息 50 | asi.modifyInfo(); 51 | }else if(choice == 4){ 52 | //导入代发工资 53 | ssi.putSalary(); 54 | 55 | }else { 56 | continue; 57 | } 58 | }else if(user.getUserRole().equals("3")) { 59 | Role3(); 60 | AccountServiceImpl adi = new AccountServiceImpl(); 61 | choice = input.nextInt(); 62 | SalaryServiceImpl ssi = new SalaryServiceImpl(); 63 | if(choice == 1) { 64 | ssi.ckeckSalary(); 65 | }else if(choice == 2 || choice == 3) { 66 | System.out.println("系统正在升级..."); 67 | }else { 68 | continue; 69 | } 70 | }else { 71 | System.out.println("未识别,登录失败!"); 72 | } 73 | } else if (choice == 2) { 74 | UserServiceImpl usi = new UserServiceImpl(); 75 | usi.register(); 76 | continue; 77 | } else if (choice == 3) { 78 | Transfer transfer = new Transfer(); 79 | System.out.println("开始转账..."); 80 | System.out.println("请输入转出账户:(bibms_account表中的account字段)"); 81 | String transOutAcc = input.next(); 82 | System.out.println("请输入转入账户:(bibms_account表中的account字段)"); 83 | String transInAcc = input.next(); 84 | System.out.println("请输入转出金额:(对应数据库的account)(例如:100.00 需要精确到小数点后两位!)"); 85 | Double transAmount = input.nextDouble(); 86 | System.out.println("请输入id号"); 87 | int id = input.nextInt(); 88 | 89 | transfer.setId(id); 90 | transfer.setTransAmount(id); 91 | transfer.setTransInAcc(transInAcc); 92 | transfer.setTransOutAcc(transOutAcc); 93 | 94 | TransferDaoImpl tdi = new TransferDaoImpl(); 95 | int i = tdi.insert(transfer); 96 | if(i != 0) System.out.println("转出成功!"); 97 | else { 98 | System.out.println("转出失败!"); 99 | } 100 | 101 | AccountServiceImpl asi = new AccountServiceImpl(); 102 | asi.modifyInfo(transfer); 103 | } else { 104 | System.out.println("感谢您的使用!"); 105 | System.out.println("本代码由Java第2小组呈现"); 106 | System.out.println("主要框架设计及实现者:韦浩然"); 107 | } 108 | } 109 | 110 | } 111 | 112 | public static void Role1() { 113 | System.out.println("登录成功!"); 114 | System.out.println("========欢迎你:系统管理员========"); 115 | System.out.println("1.新增角色 2.查询角色 3.修改角色 4.返回主菜单"); 116 | } 117 | 118 | public static void Role2() { 119 | System.out.println("登录成功!"); 120 | System.out.println("========欢迎你:营业部职员========"); 121 | System.out.println("1.开户 2.查询账户信息 3.修改账户信息 4.导入代发工资"); 122 | System.out.println("5.查询代发工资(0) 6.统计代发工资(0) 7.返回主菜单"); 123 | } 124 | 125 | public static void Role3() { 126 | System.out.println("登录成功!"); 127 | System.out.println("========欢迎你:营业部经理========"); 128 | System.out.println("1.代发工资审批 2.查询代发工资(0) 3.统计代发工资(0) 4.返回主菜单"); 129 | } 130 | } -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/AccountDao.java: -------------------------------------------------------------------------------- 1 | package cn.dao; 2 | 3 | 4 | import cn.entity.Account; 5 | import cn.entity.Transfer; 6 | 7 | public interface AccountDao { 8 | int insert(Account account); 9 | 10 | double select(Account account); 11 | 12 | Account select1(Account account); 13 | 14 | public int update(Double row,Account account); 15 | 16 | public int update(Double row,Transfer transfer); 17 | } 18 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/BaseDao.java: -------------------------------------------------------------------------------- 1 | package cn.dao; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | import java.sql.PreparedStatement; 6 | import java.sql.ResultSet; 7 | import java.sql.SQLException; 8 | import java.sql.Statement; 9 | 10 | public class BaseDao { 11 | private static String driver = "com.mysql.jdbc.Driver"; 12 | private static String url = "jdbc:mysql://localhost:3306/bibms"; 13 | private static String user = "root"; 14 | private static String password = "root"; 15 | 16 | Connection conn = null; 17 | 18 | // static { 19 | // init(); 20 | // } 21 | // 22 | // public static void init() { 23 | // Properties prop = new Properties(); 24 | // InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties"); 25 | // try { 26 | // prop.load(is); 27 | // } catch (IOException e) { 28 | // e.printStackTrace(); 29 | // } 30 | // 31 | // driver = prop.getProperty("dirver"); 32 | // url = prop.getProperty("url"); 33 | // user = prop.getProperty("user"); 34 | // password = prop.getProperty("password"); 35 | // } 36 | 37 | public Connection getConn() { 38 | try { 39 | if (conn == null || conn.isClosed()) { 40 | try { 41 | Class.forName(driver); 42 | // 加载驱动JDBC 43 | 44 | } catch (ClassNotFoundException e) { 45 | e.printStackTrace(); 46 | } 47 | 48 | try { 49 | conn = DriverManager.getConnection(url, user, password); 50 | // 建立连接 51 | } catch (SQLException e) { 52 | e.printStackTrace(); 53 | } 54 | } 55 | } catch (SQLException e) { 56 | // TODO Auto-generated catch block 57 | e.printStackTrace(); 58 | } 59 | return conn; 60 | } 61 | 62 | public void closeAll(Connection conn, Statement stmt, ResultSet rs) { 63 | if (rs != null) { 64 | try { 65 | rs.close(); 66 | } catch (SQLException e) { 67 | e.printStackTrace(); 68 | } 69 | } 70 | 71 | if (stmt != null) { 72 | try { 73 | stmt.close(); 74 | } catch (SQLException e) { 75 | e.printStackTrace(); 76 | } 77 | } 78 | 79 | if (conn != null) { 80 | try { 81 | conn.close(); 82 | } catch (SQLException e) { 83 | e.printStackTrace(); 84 | } 85 | } 86 | } 87 | 88 | public int executeUpdate(String sql, Object[] params) { 89 | conn = this.getConn(); 90 | 91 | PreparedStatement pstmt = null; 92 | 93 | try { 94 | pstmt = conn.prepareStatement(sql); 95 | 96 | for (int i = 0; i < params.length; i++) { 97 | pstmt.setObject(i + 1, params[i]); 98 | 99 | } 100 | 101 | return pstmt.executeUpdate(); 102 | // 返回受影响的行或列 103 | } catch (SQLException e) { 104 | e.printStackTrace(); 105 | return -1; 106 | } finally { 107 | closeAll(conn, pstmt, null); 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/RoleDao.java: -------------------------------------------------------------------------------- 1 | package cn.dao; 2 | 3 | import java.util.List; 4 | 5 | import cn.entity.Role; 6 | 7 | public interface RoleDao { 8 | int insert(Role role); 9 | 10 | int delete(int roleId); 11 | // 可以直接删除键值,不必封装到RoleDaoImpl 12 | 13 | int update(Role role); 14 | 15 | Role select(Role role); 16 | // public Role getRoleById(int roleID); 17 | } -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/SalaryDao.java: -------------------------------------------------------------------------------- 1 | package cn.dao; 2 | 3 | import cn.entity.Account; 4 | import cn.entity.Salary; 5 | 6 | public interface SalaryDao { 7 | public int update(String oldRow,String neoRow,Salary salary); 8 | public Salary select(Salary salary); 9 | public int update(int id,String approve); 10 | } 11 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/TransferDao.java: -------------------------------------------------------------------------------- 1 | package cn.dao; 2 | 3 | import cn.entity.Transfer; 4 | 5 | public interface TransferDao { 6 | int insert(Transfer transfer); 7 | } 8 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package cn.dao; 2 | import java.util.List; 3 | 4 | import cn.entity.*; 5 | 6 | public interface UserDao { 7 | int insert(User user); 8 | User checkDao(User user); 9 | } 10 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/impl/AccountDaoImpl.java: -------------------------------------------------------------------------------- 1 | package cn.dao.impl; 2 | 3 | import java.sql.Connection; 4 | import java.sql.ResultSet; 5 | import java.sql.SQLException; 6 | import java.sql.Statement; 7 | import java.time.LocalDateTime; 8 | 9 | import cn.dao.AccountDao; 10 | import cn.dao.BaseDao; 11 | import cn.entity.Account; 12 | import cn.entity.Transfer; 13 | 14 | public class AccountDaoImpl extends BaseDao implements AccountDao{ 15 | 16 | @Override 17 | public int insert(Account account) { 18 | String sql = "INSERT INTO `bibms_account` VALUES (?,?,?,?,?,?,?,?);"; 19 | Object[] params = { account.getAccount(),account.getCustName(),account.getIdCard(),account.getCompany(), 20 | account.getAddress(),java.sql.Timestamp.valueOf(account.getOpenTime()),account.getAccState(),account.getBalance()}; 21 | return this.executeUpdate(sql, params); 22 | } 23 | 24 | @Override 25 | public double select(Account account) { 26 | Connection conn = null; 27 | conn = this.getConn(); 28 | 29 | Statement stmt = null; 30 | double balance = 0; 31 | boolean dataMatches = false; // 默认数据匹配为假 32 | try { 33 | stmt = conn.createStatement(); 34 | ResultSet rs = stmt.executeQuery("SELECT * FROM `bibms_account`"); 35 | 36 | while (rs.next()) { 37 | String custName = rs.getString("custName"); 38 | String idCard = rs.getString("idCard"); 39 | 40 | balance = rs.getDouble("balance"); 41 | 42 | if (idCard.equals(account.getIdCard()) && custName.equals(account.getCustName())) { 43 | dataMatches = true; // 数据不匹配 44 | break; // 提前结束比较 45 | } 46 | } 47 | } catch (SQLException e) { 48 | // TODO Auto-generated catch block 49 | e.printStackTrace(); 50 | }finally { 51 | closeAll(conn, stmt, null); 52 | } 53 | return balance; 54 | } 55 | 56 | @Override 57 | public int update(Double row,Account account) {//修改信息 58 | String sql = "UPDATE `bibms_account` SET balance = ? WHERE idCard = ?"; 59 | Object[] params = {row,account.getIdCard()}; 60 | return this.executeUpdate(sql, params); 61 | } 62 | 63 | public int update(Double row,Transfer transfer) {//修改信息 64 | String sql1 = "UPDATE `bibms_account` SET balance = balance + ? WHERE account = ?"; 65 | Object[] params1 = {row,transfer.getTransInAcc()}; 66 | int result1 = this.executeUpdate(sql1, params1); 67 | 68 | String sql2 = "UPDATE `bibms_account` SET balance = balance - ? WHERE account = ?"; 69 | Object[] params2 = {row,transfer.getTransOutAcc()}; 70 | return this.executeUpdate(sql2, params2); 71 | } 72 | 73 | @Override 74 | public Account select1(Account account) { 75 | Connection conn = null; 76 | conn = this.getConn(); 77 | 78 | Statement stmt = null; 79 | 80 | boolean dataMatches = false; // 默认数据匹配为假 81 | try { 82 | stmt = conn.createStatement(); 83 | ResultSet rs = stmt.executeQuery("SELECT * FROM `bibms_account`"); 84 | 85 | while (rs.next()) { 86 | String account1 = rs.getString("account"); 87 | String custName = rs.getString("custName"); 88 | String idCard = rs.getString("idCard"); 89 | String company = rs.getString("company"); 90 | String address = rs.getString("address"); 91 | 92 | // 获取Timestamp数据 93 | java.sql.Timestamp timestamp = rs.getTimestamp("openTime"); 94 | // 转换为LocalDateTime对象 95 | LocalDateTime openTime = timestamp.toLocalDateTime(); 96 | 97 | String accState = rs.getString("accState"); 98 | double balance = rs.getDouble("balance"); 99 | 100 | if (idCard.equals(account.getIdCard()) && custName.equals(account.getCustName())) { 101 | dataMatches = true; // 数据不匹配 102 | account.setAccount(account1); 103 | account.setAccState(accState); 104 | account.setAddress(address); 105 | account.setBalance(balance); 106 | account.setCompany(company); 107 | account.setCustName(custName); 108 | account.setIdCard(idCard); 109 | account.setOpenTime(openTime); 110 | break; // 提前结束比较 111 | } 112 | } 113 | } catch (SQLException e) { 114 | // TODO Auto-generated catch block 115 | e.printStackTrace(); 116 | }finally { 117 | closeAll(conn, stmt, null); 118 | } 119 | if(dataMatches == false) account.setAccState("Error!");; 120 | return account; 121 | } 122 | } 123 | 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/impl/RoleDaoImpl.java: -------------------------------------------------------------------------------- 1 | package cn.dao.impl; 2 | 3 | import java.sql.Connection; 4 | import java.sql.PreparedStatement; 5 | import java.sql.ResultSet; 6 | import java.sql.SQLException; 7 | import java.sql.Statement; 8 | 9 | import cn.dao.BaseDao; 10 | import cn.dao.RoleDao; 11 | import cn.entity.Role; 12 | 13 | public class RoleDaoImpl extends BaseDao implements RoleDao { 14 | 15 | @Override 16 | public int insert(Role role) { 17 | String sql = "INSERT INTO `bibms_role`(`roleNo`,`roleName`) VALUES (?,?)"; 18 | Object[] params = { role.getRoleNo(), role.getRoleName() }; 19 | return this.executeUpdate(sql, params); 20 | } 21 | 22 | @Override 23 | public int delete(int roleId) { 24 | String sql = "DELETE FROM grade WHERE gradeID = ?"; 25 | Object[] params = { roleId }; 26 | return this.executeUpdate(sql, params); 27 | } 28 | 29 | @Override 30 | public int update(Role role) { 31 | String sql = "UPDATE `bibms_role` SET roleNo = ? WHERE roleName = ?"; 32 | Object[] params = { role.getRoleNo(), role.getRoleName() }; 33 | return this.executeUpdate(sql, params); 34 | } 35 | 36 | @Override 37 | public Role select(Role role) { 38 | Connection conn = null; 39 | conn = this.getConn(); 40 | Statement stmt = null; 41 | boolean dataMatches = false; 42 | try { 43 | stmt = conn.createStatement(); 44 | ResultSet rs = stmt.executeQuery("SELECT * FROM `bibms_role`"); 45 | 46 | while (rs.next()) { 47 | String roleNo = rs.getString("roleNo"); 48 | String roleName = rs.getString("roleName"); 49 | 50 | if (roleNo.equals(role.getRoleNo())) { 51 | dataMatches = true; // 数据不匹配 52 | role.setRoleName(roleName); 53 | break; // 提前结束比较 54 | } 55 | } 56 | } catch (SQLException e) { 57 | e.printStackTrace(); 58 | } finally { 59 | closeAll(conn, stmt, null); 60 | } 61 | return role; 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/impl/SalaryDaoImpl.java: -------------------------------------------------------------------------------- 1 | package cn.dao.impl; 2 | 3 | import java.sql.Connection; 4 | import java.sql.ResultSet; 5 | import java.sql.SQLException; 6 | import java.sql.Statement; 7 | import java.time.LocalDateTime; 8 | 9 | import cn.dao.BaseDao; 10 | import cn.dao.SalaryDao; 11 | import cn.entity.Salary; 12 | 13 | public class SalaryDaoImpl extends BaseDao implements SalaryDao{ 14 | 15 | @Override 16 | public int update(String oldRow, String neoRow, Salary salary) { 17 | String sql = "UPDATE `bibms_salary` SET ? = ? WHERE idCard = ?"; 18 | Object[] params = {oldRow,neoRow,salary.getIdCard()}; 19 | return this.executeUpdate(sql, params); 20 | } 21 | 22 | @Override 23 | public Salary select(Salary salary) { 24 | Connection conn = null; 25 | conn = this.getConn(); 26 | 27 | Statement stmt = null; 28 | 29 | boolean dataMatches = false; // 默认数据匹配为假 30 | try { 31 | stmt = conn.createStatement(); 32 | ResultSet rs = stmt.executeQuery("SELECT * FROM `bibms_salary`"); 33 | 34 | while (rs.next()) { 35 | String idCard = rs.getString("idCard"); 36 | double salaryCount = rs.getDouble("salary"); 37 | 38 | if (idCard.equals(salary.getIdCard())) { 39 | dataMatches = true; // 数据不匹配 40 | salary.setIdCard(idCard); 41 | salary.setSalary(salaryCount); 42 | break; // 提前结束比较 43 | } 44 | } 45 | } catch (SQLException e) { 46 | // TODO Auto-generated catch block 47 | e.printStackTrace(); 48 | }finally { 49 | closeAll(conn, stmt, null); 50 | } 51 | if(dataMatches == false) salary.setApprove("-1"); 52 | return salary; 53 | } 54 | 55 | 56 | 57 | @Override 58 | public int update(int id,String approve) { 59 | String sql = "UPDATE `bibms_salary` SET approve = ? WHERE id = ?"; 60 | Object[] params = {approve,id}; 61 | return this.executeUpdate(sql, params); 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/impl/TransferDaoImpl.java: -------------------------------------------------------------------------------- 1 | package cn.dao.impl; 2 | 3 | import cn.dao.BaseDao; 4 | import cn.dao.TransferDao; 5 | import cn.entity.Transfer; 6 | 7 | public class TransferDaoImpl extends BaseDao implements TransferDao{ 8 | 9 | @Override 10 | public int insert(Transfer transfer) { 11 | String sql = "INSERT INTO `bibms_transfer`(`id`,`transOutAcc`,`transAmount`,`transInAcc`)VALUES(?,?,?,?)"; 12 | Object[] params = {transfer.getId(),transfer.getTransOutAcc(),transfer.getTransAmount(),transfer.getTransInAcc()}; 13 | return this.executeUpdate(sql, params); 14 | } 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/dao/impl/UserDaoImpl.java: -------------------------------------------------------------------------------- 1 | package cn.dao.impl; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | import java.sql.PreparedStatement; 6 | import java.sql.ResultSet; 7 | import java.sql.SQLException; 8 | import java.sql.Statement; 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | import cn.dao.BaseDao; 13 | import cn.dao.UserDao; 14 | import cn.entity.User; 15 | 16 | public class UserDaoImpl extends BaseDao implements UserDao { 17 | public int insert(User user) { 18 | String sql = "INSERT INTO `bibms_user`(`userName`,`realName`,`password`,`userRole`)VALUES(?,?,?,?)"; 19 | // 在SQL语句中,应该使用问号作为占位符,而不是反引号,不能是:`?` 20 | Object[] params = { user.getUserName(), user.getRealName(), user.getPassword(), user.getUserRole() }; 21 | return this.executeUpdate(sql, params); 22 | } 23 | 24 | @Override 25 | public User checkDao(User user) { 26 | Connection conn = null; 27 | conn = this.getConn(); 28 | 29 | Statement stmt = null; 30 | 31 | boolean dataMatches = false; // 默认数据匹配为假 32 | try { 33 | stmt = conn.createStatement(); 34 | ResultSet rs = stmt.executeQuery("SELECT userName,password,userRole FROM `bibms_user`"); 35 | 36 | while (rs.next()) { 37 | String userName = rs.getString("userName"); 38 | String password = rs.getString("password"); 39 | String userRole = rs.getString("userRole"); 40 | 41 | if (userName.equals(user.getUserName()) && password.equals(user.getPassword())) { 42 | dataMatches = true; // 数据不匹配 43 | user.setUserName(userName); 44 | user.setPassword(password); 45 | user.setUserRole(userRole); 46 | break; // 提前结束比较 47 | } 48 | } 49 | } catch (SQLException e) { 50 | // TODO Auto-generated catch block 51 | e.printStackTrace(); 52 | }finally { 53 | closeAll(conn, stmt, null); 54 | } 55 | if(dataMatches == false) user.setUserRole("0"); 56 | return user; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/entity/Account.java: -------------------------------------------------------------------------------- 1 | package cn.entity; 2 | 3 | import java.time.LocalDateTime; 4 | import java.time.LocalTime; 5 | 6 | public class Account { 7 | 8 | private String account; 9 | private String custName; 10 | private String idCard; 11 | private String company; 12 | private String address; 13 | private LocalDateTime openTime; 14 | private String accState; 15 | private double balance; 16 | 17 | public String getAccount() { 18 | return account; 19 | } 20 | 21 | public void setAccount(String account) { 22 | this.account = account; 23 | } 24 | 25 | public String getCustName() { 26 | return custName; 27 | } 28 | 29 | public void setCustName(String custName) { 30 | this.custName = custName; 31 | } 32 | 33 | public String getIdCard() { 34 | return idCard; 35 | } 36 | 37 | public void setIdCard(String idCard) { 38 | this.idCard = idCard; 39 | } 40 | 41 | public String getCompany() { 42 | return company; 43 | } 44 | 45 | public void setCompany(String company) { 46 | this.company = company; 47 | } 48 | 49 | public String getAddress() { 50 | return address; 51 | } 52 | 53 | public void setAddress(String address) { 54 | this.address = address; 55 | } 56 | 57 | public LocalDateTime getOpenTime() { 58 | return openTime; 59 | } 60 | 61 | public void setOpenTime(LocalDateTime openTime) { 62 | this.openTime = openTime; 63 | } 64 | 65 | public String getAccState() { 66 | return accState; 67 | } 68 | 69 | public void setAccState(String accState) { 70 | this.accState = accState; 71 | } 72 | 73 | public double getBalance() { 74 | return balance; 75 | } 76 | 77 | public void setBalance(double balance) { 78 | this.balance = balance; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/entity/Role.java: -------------------------------------------------------------------------------- 1 | package cn.entity; 2 | 3 | public class Role { 4 | private String roleNo; 5 | private String roleName; 6 | 7 | public String getRoleNo() { 8 | return roleNo; 9 | } 10 | public void setRoleNo(String roleNo) { 11 | this.roleNo = roleNo; 12 | } 13 | public String getRoleName() { 14 | return roleName; 15 | } 16 | public void setRoleName(String roleName) { 17 | this.roleName = roleName; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/entity/Salary.java: -------------------------------------------------------------------------------- 1 | package cn.entity; 2 | 3 | public class Salary { 4 | private int id; 5 | private double salary; 6 | private String idCard; 7 | private String approve; 8 | 9 | public int getId() { 10 | return id; 11 | } 12 | 13 | public void setId(int id) { 14 | this.id = id; 15 | } 16 | 17 | public double getSalary() { 18 | return salary; 19 | } 20 | 21 | public void setSalary(double salary) { 22 | this.salary = salary; 23 | } 24 | 25 | public String getIdCard() { 26 | return idCard; 27 | } 28 | 29 | public void setIdCard(String idCard) { 30 | this.idCard = idCard; 31 | } 32 | 33 | public String getApprove() { 34 | return approve; 35 | } 36 | 37 | public void setApprove(String approve) { 38 | this.approve = approve; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/entity/Transfer.java: -------------------------------------------------------------------------------- 1 | package cn.entity; 2 | 3 | public class Transfer { 4 | private int id; 5 | private String transOutAcc; 6 | private double transAmount; 7 | private String transInAcc; 8 | 9 | public int getId() { 10 | return id; 11 | } 12 | public void setId(int id) { 13 | this.id = id; 14 | } 15 | public String getTransOutAcc() { 16 | return transOutAcc; 17 | } 18 | public void setTransOutAcc(String transOutAcc) { 19 | this.transOutAcc = transOutAcc; 20 | } 21 | public double getTransAmount() { 22 | return transAmount; 23 | } 24 | public void setTransAmount(double transAmount) { 25 | this.transAmount = transAmount; 26 | } 27 | public String getTransInAcc() { 28 | return transInAcc; 29 | } 30 | public void setTransInAcc(String transInAcc) { 31 | this.transInAcc = transInAcc; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/entity/User.java: -------------------------------------------------------------------------------- 1 | package cn.entity; 2 | 3 | public class User { 4 | private String userName; 5 | private String realName; 6 | private String password; 7 | private String userRole; 8 | 9 | public String getUserRole() { 10 | return userRole; 11 | } 12 | public void setUserRole(String userRole) { 13 | this.userRole = userRole; 14 | } 15 | public String getUserName() { 16 | return userName; 17 | } 18 | public void setUserName(String userName) { 19 | this.userName = userName; 20 | } 21 | public String getRealName() { 22 | return realName; 23 | } 24 | public void setRealName(String realName) { 25 | this.realName = realName; 26 | } 27 | public String getPassword() { 28 | return password; 29 | } 30 | public void setPassword(String password) { 31 | this.password = password; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/AccountService.java: -------------------------------------------------------------------------------- 1 | package cn.service; 2 | 3 | public interface AccountService { 4 | public void register() ;//银行卡开户 5 | public void searchInfo();//查询账户信息 6 | public void modifyInfo();//修改信息 7 | } 8 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/RoleService.java: -------------------------------------------------------------------------------- 1 | package cn.service; 2 | 3 | public interface RoleService { 4 | public void Add(); 5 | public void Search(); 6 | public void Modify(); 7 | } 8 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/SalaryService.java: -------------------------------------------------------------------------------- 1 | package cn.service; 2 | 3 | public interface SalaryService { 4 | public void putSalary(); 5 | public void ckeckSalary(); 6 | } 7 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/UserService.java: -------------------------------------------------------------------------------- 1 | package cn.service; 2 | 3 | import cn.entity.User; 4 | 5 | public interface UserService { 6 | public void register(); 7 | public User check(); 8 | } 9 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/impl/AccountServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.service.impl; 2 | 3 | import java.time.LocalDateTime; 4 | import java.util.Scanner; 5 | 6 | import cn.dao.impl.AccountDaoImpl; 7 | import cn.entity.Account; 8 | import cn.entity.Transfer; 9 | import cn.service.AccountService; 10 | 11 | public class AccountServiceImpl implements AccountService { 12 | 13 | @Override 14 | public void register() { 15 | Scanner input = new Scanner(System.in); 16 | System.out.println("请按照提示输入被开户者信息:"); 17 | Account account = new Account(); 18 | System.out.print("-->开户人账户account:"); 19 | account.setAccount(input.next()); 20 | System.out.print("-->顾客姓名custName:"); 21 | account.setCustName(input.next()); 22 | System.out.print("-->银行卡号idCard:"); 23 | account.setIdCard(input.next()); 24 | System.out.print("-->开户人公司company:"); 25 | account.setCompany(input.next()); 26 | System.out.print("-->开户人账户address:"); 27 | account.setAddress(input.next()); 28 | account.setOpenTime(LocalDateTime.now()); 29 | System.out.print("-->申请状态accState"); 30 | account.setAccState(input.next()); 31 | System.out.print("-->账户余额banlance"); 32 | account.setBalance(input.nextDouble()); 33 | 34 | AccountDaoImpl adi = new AccountDaoImpl(); 35 | int i = adi.insert(account); 36 | if (i != 0) { 37 | System.out.println("开户成功!"); 38 | } else { 39 | System.out.println("开户失败!"); 40 | } 41 | } 42 | 43 | @Override 44 | public void searchInfo() {// 查询信息 45 | Scanner input = new Scanner(System.in); 46 | 47 | Account account = new Account(); 48 | 49 | System.out.print("请输入用户idCard:"); 50 | account.setIdCard(input.next()); 51 | System.out.print("请输入用户名:"); 52 | account.setCustName(input.next()); 53 | 54 | AccountDaoImpl adi = new AccountDaoImpl(); 55 | account = adi.select1(account); 56 | System.out.println("查询信息为:"); 57 | System.out.println("Account\tcustName\tidCard\tcompany\taddress\topenTime\taccState\tbalance\t"); 58 | System.out.println(account.getAccount() + "\t" + account.getCustName() + "\t" + account.getIdCard() + "\t" 59 | + account.getCompany() + "\t" + account.getAddress() + "\t" + account.getOpenTime() + "\t" 60 | + account.getAccState() + "\t" + account.getBalance()); 61 | } 62 | 63 | // @Override 64 | // public void modifyInfo() { 65 | // Scanner input = new Scanner(System.in); 66 | // 67 | // System.out.println("将进行修改信息操作:"); 68 | // System.out.print("请输入要修改的字段oldRow:"); 69 | // String oldRow = input.next(); 70 | // System.out.print("请输入被修改的值neoRow:"); 71 | // String neoRow = input.next(); 72 | // System.out.print("请输入要修改人的idCard:"); 73 | // String idCard = input.next(); 74 | // 75 | // Account account = new Account(); 76 | // account.setIdCard(idCard); 77 | // 78 | // AccountDaoImpl adi = new AccountDaoImpl(); 79 | // int i = adi.update(oldRow, neoRow, account); 80 | // if (i != 0) { 81 | // System.out.println("成功!"); 82 | // } else { 83 | // System.out.println("失败!"); 84 | // } 85 | // } 86 | 87 | public void modifyInfo(Transfer transfer) { 88 | Double row = transfer.getTransAmount(); 89 | AccountDaoImpl adi = new AccountDaoImpl(); 90 | int i = adi.update(row,transfer); 91 | if (i != 0) { 92 | System.out.println("成功!"); 93 | } else { 94 | System.out.println("失败!"); 95 | } 96 | } 97 | 98 | @Override 99 | public void modifyInfo() { 100 | // TODO Auto-generated method stub 101 | 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/impl/RoleServciceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.service.impl; 2 | 3 | import java.util.Scanner; 4 | 5 | import cn.dao.impl.RoleDaoImpl; 6 | import cn.entity.Role; 7 | import cn.service.RoleService; 8 | 9 | public class RoleServciceImpl implements RoleService { 10 | private String roleNo; 11 | private String roleName; 12 | Scanner input = new Scanner(System.in); 13 | 14 | @Override 15 | public void Add() { 16 | Role role = new Role(); 17 | 18 | System.out.println("将进行新增角色程序..."); 19 | System.out.print("请输入新增管理员类型:1.系统管理员;2.营业部职员;3.营业部经理;"); 20 | roleNo = input.next(); 21 | System.out.print("请输入所选角色真实姓名:"); 22 | roleName = input.next(); 23 | 24 | role.setRoleNo(roleNo); 25 | role.setRoleName(roleName); 26 | 27 | RoleDaoImpl rdi = new RoleDaoImpl(); 28 | int i = rdi.insert(role); 29 | if (i != 0) { 30 | System.out.println("注册成功!"); 31 | } else { 32 | System.out.println("注册失败!"); 33 | } 34 | } 35 | 36 | @Override 37 | public void Search() { 38 | Role role = new Role(); 39 | 40 | System.out.println("将进行查询角色程序..."); 41 | System.out.print("请输入管理员类型以查得其姓名:"); 42 | roleNo = input.next(); 43 | role.setRoleNo(roleNo); 44 | 45 | RoleDaoImpl rdi = new RoleDaoImpl(); 46 | role = rdi.select(role); 47 | System.out.println("查询结果为:"+role.getRoleName()); 48 | 49 | } 50 | 51 | @Override 52 | public void Modify() { 53 | Role role = new Role(); 54 | 55 | System.out.println("将进行修改角色程序..."); 56 | System.out.print("请输入管理员姓名以修改其类型:"); 57 | roleName = input.next(); 58 | role.setRoleName(roleName); 59 | System.out.println("输入修改后得类型::1.系统管理员;2.营业部职员;3.营业部经理;"); 60 | roleNo = input.next(); 61 | role.setRoleNo(roleNo); 62 | 63 | RoleDaoImpl rdi = new RoleDaoImpl(); 64 | int i = rdi.update(role); 65 | if (i != 0) { 66 | System.out.println("注册成功!"); 67 | } else { 68 | System.out.println("注册失败!"); 69 | } 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/impl/SalaryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.service.impl; 2 | 3 | import java.util.Scanner; 4 | 5 | import cn.dao.impl.AccountDaoImpl; 6 | import cn.dao.impl.SalaryDaoImpl; 7 | import cn.entity.Account; 8 | import cn.entity.Salary; 9 | import cn.service.SalaryService; 10 | 11 | public class SalaryServiceImpl implements SalaryService{ 12 | 13 | @Override 14 | public void putSalary() { 15 | Scanner input = new Scanner(System.in); 16 | Account account = new Account(); 17 | Salary salary = new Salary(); 18 | 19 | 20 | System.out.print("请输入要导入工资客户的idCrad"); 21 | String idCard = input.next(); 22 | 23 | salary.setIdCard(idCard); 24 | account.setIdCard(idCard); 25 | 26 | System.out.print("请输入要导入工资客户的custName"); 27 | account.setCustName(input.next()); 28 | AccountDaoImpl adi = new AccountDaoImpl(); 29 | 30 | Double balance = adi.select(account); 31 | 32 | SalaryDaoImpl sdi = new SalaryDaoImpl(); 33 | salary = sdi.select(salary); 34 | Double salaryCount = salary.getSalary(); 35 | 36 | balance = balance + salaryCount; 37 | 38 | adi.update(balance,account); 39 | 40 | System.out.println("更新成功!"); 41 | } 42 | 43 | @Override 44 | public void ckeckSalary() { 45 | Scanner input = new Scanner(System.in); 46 | 47 | System.out.println("输入流水单id"); 48 | int id = input.nextInt(); 49 | String approve = null; 50 | System.out.println("此id的流水单是否审批通过?Y/N"); 51 | if(input.next().equals("Y")) approve = "1"; 52 | else approve = "0"; 53 | 54 | SalaryDaoImpl sdi = new SalaryDaoImpl(); 55 | int i = sdi.update(id, approve); 56 | if(i != 0 ) { 57 | System.out.println("成功!"); 58 | }else { 59 | System.out.println("失败!"); 60 | } 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /BibmsJava/src/cn/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.service.impl; 2 | 3 | import java.util.Scanner; 4 | 5 | import cn.dao.UserDao; 6 | import cn.dao.impl.UserDaoImpl; 7 | import cn.entity.User; 8 | import cn.service.UserService; 9 | 10 | public class UserServiceImpl implements UserService { 11 | private String userName; 12 | private String password; 13 | private String realName; 14 | Scanner input = new Scanner(System.in); 15 | 16 | @Override 17 | public void register() { 18 | System.out.println("系统开始注册进程..."); 19 | System.out.print("请输入用户名(userName):"); 20 | userName = input.next(); 21 | System.out.print("请输入密码(password):"); 22 | password = input.next(); 23 | System.out.print("请输入真实姓名(realName):"); 24 | realName = input.next(); 25 | 26 | User user = new User(); 27 | 28 | user.setUserName(userName); 29 | user.setPassword(password); 30 | user.setRealName(realName); 31 | 32 | System.out.print("--->>>请选择角色:1.系统管理员;2.营业部职员;3.营业部经理;"); 33 | int choice = input.nextInt(); 34 | if (choice == 1) { 35 | user.setUserRole("1"); 36 | }else if(choice == 2) { 37 | user.setUserRole("2"); 38 | }else { 39 | user.setUserRole("3"); 40 | } 41 | UserDaoImpl ud = new UserDaoImpl(); 42 | int i = ud.insert(user); 43 | if (i != 0) { 44 | System.out.println("注册成功!"); 45 | } else { 46 | System.out.println("注册失败!"); 47 | } 48 | } 49 | 50 | @Override 51 | public User check() { 52 | User user = new User(); 53 | Scanner input = new Scanner(System.in); 54 | System.out.print("请输入类型1系统管理员的姓名:"); 55 | userName = input.next(); 56 | user.setUserName(userName); 57 | System.out.print("请输入其密码:"); 58 | password = input.next(); 59 | user.setPassword(password); 60 | 61 | UserDaoImpl udi = new UserDaoImpl(); 62 | return udi.checkDao(user); 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /BibmsJava/src/db.properties: -------------------------------------------------------------------------------- 1 | driver=com.mysql.jdbc.Driver 2 | url=jdbc:mysql://localhost:3306/myschool 3 | user=root 4 | password=root -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Haoran Wei 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BibmsJava 2 | BibmsJava A bank intermediary business system project based on Java+Mysql+JDBC 3 | (一项基于Java+Mysql+JDBC的银行中间业务系统项目) 4 | The Java source code is driven by JDBC and needs to connect to the mysql database. 5 | The database dump file is attached below. 6 | (Java源代码由JDBC驱动,需要连接mysql数据库,下方附有数据库转储文件。) 7 | You need to add the `mysql-connector-java-5.1.0-bin.jar` file yourself. 8 | (需要您自行添加mysql-connector-java-5.1.0-bin.jar) 9 | 10 | # Log 11 | ## Log 2023.6.20: 12 | ``` 13 | 1. Fixed the issue that the administrator login of function 1 cannot be queried 14 | 2. Modified Main interface UI 15 | 2023年6月20日日志: 16 | 1.修复了功能1管理员登录不能查询的问题 17 | 2.修改了Main界面UI 18 | ``` 19 | 20 | ## August 28, 2023 log: 21 | ``` 22 | 1. Updated the README document 23 | 2. Re-export the BibmsJava project file 24 | 2023年8月28日日志: 25 | 1.更新了README文档 26 | 2.重新导出了BibmsJava工程文件 27 | ``` 28 | 29 | ## June 26, 2024 log: 30 | ``` 31 | 1.Remove some unnecessary configuration files 32 | 1.删除了一些不必要的配置文件 33 | ``` 34 | -------------------------------------------------------------------------------- /bibms(NonData).sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat Premium Data Transfer 3 | 4 | Source Server : HaoranWei 5 | Source Server Type : MySQL 6 | Source Server Version : 50529 (5.5.29) 7 | Source Host : localhost:3306 8 | Source Schema : bibms 9 | 10 | Target Server Type : MySQL 11 | Target Server Version : 50529 (5.5.29) 12 | File Encoding : 65001 13 | 14 | Date: 18/06/2023 20:17:12 15 | */ 16 | 17 | SET NAMES utf8mb4; 18 | SET FOREIGN_KEY_CHECKS = 0; 19 | 20 | -- ---------------------------- 21 | -- Table structure for bibms_account 22 | -- ---------------------------- 23 | DROP TABLE IF EXISTS `bibms_account`; 24 | CREATE TABLE `bibms_account` ( 25 | `account` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '唯一识别码', 26 | `custName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '客户姓名', 27 | `idCard` varchar(18) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '银行卡号', 28 | `company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '开户人公司', 29 | `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '开户人通讯地址', 30 | `openTime` datetime NOT NULL COMMENT '开户时间', 31 | `accState` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '账户状态', 32 | `balance` double(10, 2) NOT NULL COMMENT '账户额度', 33 | PRIMARY KEY (`account`, `company`) USING BTREE, 34 | INDEX `company`(`company`) USING BTREE, 35 | INDEX `account`(`account`) USING BTREE 36 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; 37 | 38 | -- ---------------------------- 39 | -- Table structure for bibms_role 40 | -- ---------------------------- 41 | DROP TABLE IF EXISTS `bibms_role`; 42 | CREATE TABLE `bibms_role` ( 43 | `roleNo` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '营业部员工号', 44 | `roleName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '营业部员工姓名', 45 | PRIMARY KEY (`roleNo`) USING BTREE 46 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; 47 | 48 | -- ---------------------------- 49 | -- Table structure for bibms_salary 50 | -- ---------------------------- 51 | DROP TABLE IF EXISTS `bibms_salary`; 52 | CREATE TABLE `bibms_salary` ( 53 | `id` int(11) NOT NULL, 54 | `compName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 55 | `empName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 56 | `salary` double(20, 2) NOT NULL, 57 | `payMonth` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 58 | `compAcc` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 59 | `empAcc` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 60 | `idCard` char(18) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 61 | `desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 62 | `approve` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 63 | PRIMARY KEY (`id`) USING BTREE, 64 | INDEX `compAcc`(`compName`) USING BTREE, 65 | CONSTRAINT `compAcc` FOREIGN KEY (`compName`) REFERENCES `bibms_account` (`company`) ON DELETE RESTRICT ON UPDATE RESTRICT 66 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; 67 | 68 | -- ---------------------------- 69 | -- Table structure for bibms_transfer 70 | -- ---------------------------- 71 | DROP TABLE IF EXISTS `bibms_transfer`; 72 | CREATE TABLE `bibms_transfer` ( 73 | `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '单号', 74 | `transOutAcc` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '转出账户', 75 | `transAmount` double(20, 2) NOT NULL COMMENT '转账额度', 76 | `transTime` datetime NULL DEFAULT NULL COMMENT '转账时间', 77 | `transInAcc` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '转入账户', 78 | `desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 79 | PRIMARY KEY (`id`) USING BTREE, 80 | INDEX `转出关联(唯一识别码)`(`transOutAcc`) USING BTREE, 81 | INDEX `转入关联(唯一识别码)`(`transInAcc`) USING BTREE, 82 | CONSTRAINT `转入关联(唯一识别码)` FOREIGN KEY (`transInAcc`) REFERENCES `bibms_account` (`account`) ON DELETE RESTRICT ON UPDATE RESTRICT, 83 | CONSTRAINT `转出关联(唯一识别码)` FOREIGN KEY (`transOutAcc`) REFERENCES `bibms_account` (`account`) ON DELETE RESTRICT ON UPDATE RESTRICT 84 | ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; 85 | 86 | -- ---------------------------- 87 | -- Table structure for bibms_user 88 | -- ---------------------------- 89 | DROP TABLE IF EXISTS `bibms_user`; 90 | CREATE TABLE `bibms_user` ( 91 | `userName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户昵称', 92 | `realName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '真实姓名', 93 | `password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码', 94 | `userRole` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '所属管理员号', 95 | PRIMARY KEY (`userName`) USING BTREE, 96 | INDEX `userRole`(`userRole`) USING BTREE, 97 | CONSTRAINT `userRole` FOREIGN KEY (`userRole`) REFERENCES `bibms_role` (`roleNo`) ON DELETE RESTRICT ON UPDATE NO ACTION 98 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; 99 | 100 | SET FOREIGN_KEY_CHECKS = 1; 101 | -------------------------------------------------------------------------------- /概要设计说明书.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoranwei/BibmsJava/186b9f95fea380fd24da75021d0ccfd4c20c7dc8/概要设计说明书.docx -------------------------------------------------------------------------------- /用户手册.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoranwei/BibmsJava/186b9f95fea380fd24da75021d0ccfd4c20c7dc8/用户手册.docx -------------------------------------------------------------------------------- /需求分析说明书.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoranwei/BibmsJava/186b9f95fea380fd24da75021d0ccfd4c20c7dc8/需求分析说明书.docx --------------------------------------------------------------------------------