銀行管理系統(控制檯版),數據庫用mysql

AdminServie.java

package service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import view.TestBank;
import BankUtil.DbUtil;
import domain.Admin;
import domain.Customer;

public class AdminService {
	private static DbUtil db;
	private static Admin ad;
	private static Customer cu;
	private static Connection conn;
	private static Statement stmt;
	private static PreparedStatement ps;
	private static ResultSet rs;
	private static AdminService as = new AdminService();

	public static void login() throws Exception {
		Scanner input = new Scanner(System.in);
		db = new DbUtil();
		boolean flag = false;
		conn = db.getConnection();
		System.out.println("請輸入用戶名:");
		String name = input.next();
		ad.setAdminName(name);
		System.err.println("請輸入密碼");
		String pwd = input.next();
		ad.setAdminPwd(pwd);
		String sql = "select * from admin";
		stmt = conn.createStatement();
		rs = stmt.executeQuery(sql);
		while (rs.next()) {
			if ((ad.getAdminName().equals(rs.getString(3)))
					&& ad.getAdminPwd().equals(rs.getString(2))) {
				System.out.println("登錄成功!");
				flag = true;
				break;
			}
		}
		if (!flag) {
			System.out.println("用戶名/密碼錯誤");
		} else {
			// System.out.println("登錄成功");
			as.menu();
		}

	}

	public static void menu() throws Exception {
		System.out.println("銀行系統:[管理員]");
		System.out
				.println("1、添加顧客         2、計算儲蓄總額         3、富豪排行榜            4、退出");
		System.out.println("請選擇:");
		Scanner menuInput = new Scanner(System.in);
		int num = menuInput.nextInt();
		switch (num) {
		case 1:
			System.out.println("當前---->管理員---->添加顧客");
			addCust();
			break;
		case 2:
			System.out.println("當前---->管理員---->計算儲蓄總額");
			countMoney();
			break;
		case 3:
			System.out.println("當前---->管理員---->富豪排行榜");
			order();
			break;
		case 4:
			System.out.println("當前---->管理員---->退出");
			exit();
			break;

		default:
			break;
		}
	}

	public static void addCust() throws Exception {
		System.out.println();
		Scanner addInput = new Scanner(System.in);
		System.out.print("請輸入顧客銀行卡號:");
		String custNum = addInput.next();
		cu.setCustNum(custNum);
		System.out.println("請輸入顧客姓名:");
		String custName = addInput.next();
		cu.setCustName(custName);
		System.out.println("請輸入顧客身份證:");
		String custIdCard = addInput.next();
		cu.setCustIdCard(custIdCard);
		System.out.println("請輸入顧客開戶金額:");
		float custMoney = addInput.nextFloat();
		cu.setCustMoney(custMoney);
		System.out.println("請輸入初密碼");
		String custPwd = addInput.next();
		cu.setCustPwd(custPwd);
		conn = db.getConnection();
		stmt = conn.createStatement();
		String sql = "insert into customer(custNum,custName,custPwd,custIDCard,custmoney,custDate) values('"
				+ custNum
				+ "','"
				+ custName
				+ "','"
				+ custPwd
				+ "','"
				+ custIdCard + "'," + custMoney + ",curdate())";
		System.out.println(sql);
		int i = stmt.executeUpdate(sql);
		if (i == 1) {
			System.out.println("添加成功");
			System.out.println("1、退出添加菜單\t2、退出系統");
			int ch = addInput.nextInt();
			switch (ch) {
			case 1:
				menu();
				break;
			case 0:
				exit();
				break;
			default:
				menu();
				break;
			}
		} else {
			System.out.println("添加失敗");
			menu();
		}
	}

	public static void countMoney() throws Exception {

		Scanner countInput = new Scanner(System.in);
		conn = db.getConnection();
		stmt = conn.createStatement();
		float money = 0;
		String sql = "select sum(custMoney) from customer";
		rs = stmt.executeQuery(sql);
		if (rs.next()) {
			money = rs.getFloat(1);
		}
		System.out.println("當前存款總額爲:" + money);
		back();

	}

	public static void order() throws Exception {
		conn = db.getConnection();
		stmt = conn.createStatement();
		String sql = "select * from customer order by custMoney desc";
		rs = stmt.executeQuery(sql);
		System.out.println("銀行卡號\t用戶名\t用戶密碼\t身份證號\t存款餘額");
		while (rs.next()) {
			String cardNumber = rs.getString(1);
			String userName = rs.getString(2);
			String userPwd = rs.getString(3);
			String idCard = rs.getString(4);
			float money = rs.getFloat(5);
			System.out.println(cardNumber + "\t" + userName + "\t" + userPwd
					+ "\t" + idCard + "\t" + money);

		}
		back();

	}

	public static void exit() {
		System.exit(0);

	}

	public static void back() throws Exception {
		TestBank tb = new TestBank();
		Scanner sc = new Scanner(System.in);
		System.out.println("1、返回登錄主菜單\t2、返回管理員主菜單\t3、退出系統\t");
		int in = sc.nextInt();
		switch (in) {
		case 1:
			tb.init();
			break;
		case 2:
			menu();
			break;
		case 3:
			exit();
			break;
		default:

			break;
		}

	}
}

CustService.java

package service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import view.TestBank;
import BankUtil.DbUtil;
import domain.Admin;
import domain.Customer;

public class CustService {
	private static DbUtil db;
	private static Admin ad;
	private static Connection conn;
	private static Statement stmt;
	private static PreparedStatement ps;
	private static ResultSet rs;
	private static TestBank tb;
	static String name;
	static String pwd;

	public static void menu() throws Exception {
		System.out.println("銀行系統[顧客],請選擇:");
		System.out.println("1、存款\t2、取款\t3、查詢餘額\t4、轉賬\t5、修改密碼\t6、退出");
		Scanner scMenu = new Scanner(System.in);
		int ch = scMenu.nextInt();
		switch (ch) {
		case 1:
			System.out.println("當前頁面---->顧客----->存款");
			save();
			back();
			break;
		case 2:
			System.out.println("當前頁面---->顧客----->取款");
			take();
			back();
			break;
		case 3:
			System.out.println("當前頁面---->顧客----->查詢餘額");
			query();
			back();
			break;
		case 4:
			System.out.println("當前頁面---->顧客----->轉賬");
			trans();
			back();
			break;

		case 5:
			alter();
			back();
			System.out.println("當前頁面---->顧客----->修改密碼");
			break;
		case 6:
			exit();
			System.out.println("當前頁面---->顧客----->退出");
			break;
		default:
			break;
		}

	}

	public static void save() throws Exception {
		conn = db.getConnection();
		stmt = conn.createStatement();
		Scanner scSave = new Scanner(System.in);
		System.out.println("輸入存款餘額:");
		float money = scSave.nextFloat();
		String sql = "update customer set custMoney=custMoney+" + money
				+ " where custname='" + name + "'";
		int re = stmt.executeUpdate(sql);
		if (re == 1) {
			System.out.println("存款成功");
		} else {
			System.out.println("存款失敗");
		}

	}

	public static void take() throws Exception {
		conn = db.getConnection();
		stmt = conn.createStatement();
		Scanner scTake = new Scanner(System.in);
		System.out.println("輸出取款餘額:");
		float money = scTake.nextFloat();
		String sql = "update customer set custmonry=customer-" + money
				+ " where custname=name";
		int re = stmt.executeUpdate(sql);
		String sql2 = "select custmoney from customer where custname='" + name
				+ "'";

		rs = stmt.executeQuery(sql2);
		if (re == 1) {
			while (rs.next()) {
				System.out.println("取款成功!所剩餘額:" + rs.getFloat(1));

			}

		} else {
			System.out.println("餘額不足!");
		}

	}

	public static void query() throws SQLException {
		conn = db.getConnection();
		stmt = conn.createStatement();
		Scanner scQuery = new Scanner(System.in);
		String sql = "select custmoney from customer where custname='" + name
				+ "'";
		rs = stmt.executeQuery(sql);
		while(rs.next()){
		System.out.println("所剩餘額爲:" + rs.getFloat(1));}

	}

	public static void trans() throws SQLException {
		conn = db.getConnection();
		stmt = conn.createStatement();
		Scanner scTrans = new Scanner(System.in);
		System.out.println("請輸入對方賬戶:");
		String na = scTrans.next();
		System.out.println("請輸入轉賬金額:");
		float fl = scTrans.nextFloat();
		String sql = "update customer set custmoney=custmoney+" + fl
				+ " where custname='" + na + "'";
		int i = stmt.executeUpdate(sql);
		if (i == 1) {
			System.out.println("轉賬成功");
		} else {
			System.out.println("轉賬失敗");
		}
	}

	public static void alter() throws Exception {
		conn = db.getConnection();
		stmt = conn.createStatement();
		Scanner scAlter = new Scanner(System.in);
		System.out.println("請輸入修改的密碼:");
		String mima = scAlter.next();
		String sql = "update customer set custpwd='" + mima
				+ "' where custname='" + name + "'";
		int n = stmt.executeUpdate(sql);
		if (n == 1) {
			System.out.println("密碼修改成功!");
			System.out.println("請牢記您的密碼:" + mima);
		} else {
			System.out.println("密碼修改失敗!");
		}

	}

	public static void exit() throws Exception {
		TestBank tb = new TestBank();
		tb.init();

	}

	public static void login() throws Exception {
		Customer cust = new Customer();
		Scanner scLogin = new Scanner(System.in);
		System.out.println("請輸入用戶名:");
		name = scLogin.next();
		cust.setCustName(name);
		System.out.println("請輸入密碼:");
		pwd = scLogin.next();
		cust.setCustPwd(pwd);
		conn = db.getConnection();
		
		String sql = "select * from customer";
		stmt = conn.createStatement();
		rs = stmt.executeQuery(sql);
		while (rs.next()) {
			if ((name.equals(rs.getString(2))) && (pwd.equals(rs.getString(3)))) {
				System.out.println("登錄成功!");
				menu();

			} else {
				System.out.println("用戶名/密碼錯誤!");
				tb.init();
			}
		}
	}

	public static void back() throws Exception {
		TestBank tb = new TestBank();
		Scanner sc = new Scanner(System.in);
		System.out.println("1、返回登錄主菜單\t2、返回顧客主菜單\t3、退出系統\t");
		int in = sc.nextInt();
		switch (in) {
		case 1:
			tb.init();
			break;
		case 2:
			menu();
			break;
		case 3:
			exit();
			break;
		default:
			menu();
			break;
		}

	}
}

dbUtil.java

package BankUtil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

public class DbUtil {
	private static String driverClass;
	private static String url;
	private static String username;
	private static String password;
	// 加載數據庫配置文件
	static {
		ResourceBundle rb = ResourceBundle.getBundle("dbinfo");
		// 得到數據庫信息
		driverClass = rb.getString("driverClass");
		url = rb.getString("url");
		username = rb.getString("username");
		password = rb.getString("password");
		try {
			// 加載驅動
			Class.forName(driverClass);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 獲取鏈接
	public static Connection getConnection() throws SQLException {

		return DriverManager.getConnection(url, username, password);

	}

	// 釋放鏈接
	public static void release(Connection conn, Statement sta, ResultSet rs)
			throws SQLException {
		rs.close();
		sta.close();
		conn.close();
	}

}

db.properties








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章