准备工作

1.将jar包导入IDEA 的external libraries中并复制到对应project的和src同级的lib目录下。

java 金融 必问 金融java开发_System


java 金融 必问 金融java开发_User_02


这里选择File>Project Structure弹出对应页面,选择Export上的+ >jars or directions>找到对应.jar文件选择ok即可。这时,.jar文件导入external libraries,再在src同级建立lib(directory),将external libraries的jar文件复制粘贴到lib即可。至此,JDBC文件配置工作完成。2.导入junit用于单元测试:和上述流程完全相同。

java 金融 必问 金融java开发_java_03


正确效果图。

系统架构

本项目分为用户模块和管理员模块,其中用户模块包含1.用户查询(按卡号和密码)2.修改信息(分别修改姓名,年龄等信息)3.转账4.转账记录查询5.外币兑换;管理员模块包含1.用户查询(查询所有数据和按姓名查询)2.增加用户3.删除用户。

这两个模块 均设置登录检查,用户模块根据控制台输入的卡号和密码,在数据库进行遍历,如果有该信息则登陆成功,否则失败。

数据库设计部分分为user 和 event两张表,user表记录用户个人信息,event表记录转账记录。

建包如图:

java 金融 必问 金融java开发_java_04

java 金融 必问 金融java开发_java_05


建表如图

user表:

java 金融 必问 金融java开发_java 金融 必问_06


event表:

java 金融 必问 金融java开发_java_07

代码展示

菜单栏:

主菜单

`package com.suoer.bankms.main;

public class MainMenu {
  public static void mainMenu(){
      System.out.println("*******欢迎使用银行金融管理系统********");
      System.out.println("*******声明:本银行立足于美利坚合众国,受北美法律保护,请您放心使用。");
      System.out.println("角色选择");
      System.out.println("1.管理员");
      System.out.println("2.个人用户");
      System.out.println("3.退出");
  }
}`

管理员菜单

package com.suoer.bankms.admin.menu;

public class AdminMainMenu {
    public static void adminMainMenu(){
       System.out.println("*******管理员主菜单*******");
        System.out.println("\t0.查询所有用户信息");
       System.out.println("\t1.查询用户信息");
       System.out.println("\t2.增加用户");
       System.out.println("\t3.删除用户");
       System.out.println("\t4.返回上级");
       System.out.println("\t5.退出");

    }
}

用户菜单

package com.suoer.bankms.user.menu;

public class UserMainMenu {
    public static void userMainMenu(){
        System.out.println("*******用户主菜单*******");
        System.out.println("\t1.查询用户信息");
        System.out.println("\t2.修改部分信息");
        System.out.println("\t3.转账");
        System.out.println("\t4.转账记录查询");
        System.out.println("\t5.外币兑换");
        System.out.println("\t6.退出");


    }

}

控制栏

主控制栏

package com.suoer.bankms.admin.controller;

import com.suoer.bankms.admin.menu.AdminMainMenu;
import com.suoer.bankms.admin.service.AdminService;
import com.suoer.bankms.main.MainMenu;
import com.suoer.bankms.user.controller.UserMainMenuController;
import com.suoer.bankms.user.menu.UserMainMenu;
import com.suoer.bankms.user.service.UserService;
import com.suoer.bankms.util.OrderCheck;

import java.util.Scanner;

public class MainMenuController {
    public void deal(){
        Scanner sc=new Scanner(System.in);
        String input=sc.nextLine();
        int order = OrderCheck.checkOrder(input);
        if(order!=-1){
            switch (order){
                case 1: AdminService service=new AdminService();
                    System.out.println("请先登录");
                    if(service.login()){
                        AdminMainMenu.adminMainMenu();
                        new AdminMainMenuController().deal();
                    }else{
                        System.out.println("管理员名称不存在或密码错误");
                        MainMenu.mainMenu();
                        deal();
                    }
                    break;
                case 2:
                    UserService service1=new UserService();
                    System.out.println("请先登录");
                    if(service1.login()){
                        UserMainMenu.userMainMenu();
                        System.out.println(service1.name+"  "+service1.password);
                        new UserMainMenuController().deal(service1.name,service1.password);
                    }else{
                        System.out.println("用户名不存在或密码有误");
                        deal();
                    }

                case 3:System.exit(0);
                default:System.out.println("输入有误,请重新输入");
                        break;
            }
        }
    }
}

管理员控制栏

package com.suoer.bankms.admin.controller;

import com.suoer.bankms.admin.dao.AdminDao;
import com.suoer.bankms.admin.menu.AdminMainMenu;
import com.suoer.bankms.main.MainMenu;
import com.suoer.bankms.user.module.User;
import com.suoer.bankms.util.OrderCheck;

import java.util.Scanner;

public class AdminMainMenuController {
    public void deal(){
        Scanner sc=new Scanner(System.in);
        String input=sc.nextLine();
        int order= OrderCheck.checkOrder(input);
        if(order!=-1){
            switch (order){
                case 0:System.out.println(new AdminDao().selectAll());
                    AdminMainMenu.adminMainMenu();
                    deal();
                       break;

                case 1:
                    Scanner sc1=new Scanner(System.in);
                    System.out.println("请输入用户姓名");
                    String name=sc1.next();
                    System.out.println(new AdminDao().selectByName(name));
                    AdminMainMenu.adminMainMenu();
                    deal();
                    break;
                case 2:
                    Scanner sc2=new Scanner(System.in);
                    System.out.println("请输入id,姓名,密码,银行,账户,身份证,性别,年龄,籍贯,手机号,本地存款,外币存款");
                    String id=String.valueOf(sc2.nextInt());
                    String name1=sc2.next();
                    String password=String.valueOf(sc2.nextInt());
//                    String accountname=sc2.next();
                    String bank= sc2.next();
                    String account=sc2.next();
                    String IDcard=String.valueOf(sc2.nextInt());
                    String sex=sc2.next();
                    int age=sc2.nextInt();
                    String native_place=sc2.next();
                    String phone_number=String.valueOf(sc2.nextInt());
                    int native_sum=sc2.nextInt();
                    int foreign_sum=sc2.nextInt();
                    new AdminDao().add(new User(id,name1,password,bank,account,IDcard,sex,age,native_place,phone_number,native_sum,foreign_sum));
                    AdminMainMenu.adminMainMenu();
                    deal();
                    break;
                case 3:
                    Scanner sc3=new Scanner(System.in);
                    System.out.println("请输入待删除用户的姓名,身份证号");
                    String name2=sc3.next();
                    String IDcard1=String.valueOf(sc3.nextInt());
                    System.out.println(new AdminDao().delete(name2,IDcard1));
                    AdminMainMenu.adminMainMenu();
                    deal();
                    break;
                case 4:
                    MainMenu.mainMenu();
                    new MainMenuController().deal();
                    break;
                case 5:System.exit(0);
                default:System.out.println("输入有误,请重新输入");
                        break;
            }
        }
    }
}

用户控制栏

package com.suoer.bankms.user.controller;

import com.sun.jdi.NativeMethodException;
import com.suoer.bankms.main.MainMenu;
import com.suoer.bankms.user.dao.UserDao;
import com.suoer.bankms.user.menu.UserMainMenu;
import com.suoer.bankms.user.module.User;
import com.suoer.bankms.util.OrderCheck;

import java.util.Scanner;

public class UserMainMenuController {
    public void deal(String name,String password){
        Scanner sc=new Scanner(System.in);
        String input=sc.nextLine();
        int order= OrderCheck.checkOrder(input);
        if(order!=-1){
            switch (order){
                case 1:
                    Scanner newsc=new Scanner(System.in);
                    System.out.println("请输入银行卡号 密码:");
                    String account= String.valueOf(newsc.nextInt());
                    String password1=String.valueOf(newsc.nextInt());
                    User user = new UserDao().selectByNameAndPassword(account, password1);
                    System.out.println(user);
                    UserMainMenu.userMainMenu();
                    deal(name,password);
                    break;
                case 2:
                    System.out.println("请选择要修改的信息:");
                    System.out.println("1.姓名");
                    System.out.println("2.年龄");
                    System.out.println("3.籍贯");
                    System.out.println("4.手机号");
                    Scanner sc1=new Scanner(System.in);
                    String input1 = sc1.nextLine();
                    int order1 = OrderCheck.checkOrder(input1);
                    if(order1!=-1){
                        switch (order1){
                            case 1:
                                Scanner namesc=new Scanner(System.in);
                                System.out.println("请输入新的姓名:");
                                String newname=namesc.next();
                                new UserDao().updateByNameAndPassword1(name,password,newname);
                                UserMainMenu.userMainMenu();
                                deal(name,password);
                                break;
                            case 2:
                                Scanner agesc=new Scanner(System.in);
                                System.out.println("请输入新的年龄:");
                                int newage=agesc.nextInt();
                                new UserDao().updateByNameAndPassword2(name,password,newage);
                                UserMainMenu.userMainMenu();
                                deal(name,password);
                                break;
                            case 3:
                                Scanner nativesc=new Scanner(System.in);
                                System.out.println("请输入新的籍贯:");
                                String newnative=nativesc.next();
                                new UserDao().updateByNameAndPassword3(name,password,newnative);
                                UserMainMenu.userMainMenu();
                                deal(name,password);
                                break;
                            case 4:
                                Scanner phonesc=new Scanner(System.in);
                                System.out.println("请输入新的手机号:");
                                String newphone=String.valueOf(phonesc.nextInt());
                                new UserDao().updateByNameAndPassword4(name,password,newphone);
                                UserMainMenu.userMainMenu();
                                deal(name,password);
                                break;
                            default:System.out.println("输入有误,请重新输入");
                                break;
                        }
                    }

                    System.out.println("输入有误,请重新输入");
                    UserMainMenu.userMainMenu();
                    deal(name,password);
                    break;
                case 3:
                    Scanner sc2=new Scanner(System.in);
                    System.out.println("请输入你的姓名,你的密码,对方姓名,身份证号,转账金额");
                    String myname=sc2.next();
                    String mypassword=String.valueOf(sc2.nextInt());
                    String hisname=sc2.next();
                    String hisIDcard=String.valueOf(sc2.nextInt());
                    int num=sc2.nextInt();

                    new UserDao().transfer(myname,mypassword,hisname,hisIDcard,num);
                    UserMainMenu.userMainMenu();
                    deal(name,password);
                    break;
                case 4:
                    System.out.println(new UserDao().selectEvents(name));
                    UserMainMenu.userMainMenu();
                    deal(name,password);
                    break;
                case 5:
                    System.out.println("请输入姓名和转账金额");
                    Scanner scanner=new Scanner(System.in);
                    String name3=scanner.next();
                    float amount=scanner.nextInt();
                    System.out.println( new UserDao().exChange(name3,amount));


                    break;
                case 6:System.exit(0);
                     break;
                default:System.out.println("输入有误,请重新输入");
                    break;
            }
        }
    }
}

登录检查(service)

管理员检查

package com.suoer.bankms.admin.service;

import java.util.Scanner;

public class AdminService {
    private static Scanner sc=new Scanner(System.in);

    public boolean login(){
        System.out.println("请输入用户名");
        String username=sc.nextLine();
        System.out.println("请输入密码");
        String password=sc.nextLine();
        if(username.equals("jack")&&password.equals("123"))
            return true;
        else return false;
    }
}

用户检查

package com.suoer.bankms.user.service;

import com.suoer.bankms.util.DButil;

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

public class UserService {
    private static Scanner sc=new Scanner(System.in);
    public String name;
    public String password;
    public boolean login(){
        System.out.println("请输入用户名");
        name=sc.nextLine();
        System.out.println("请输入密码");
        password=sc.nextLine();
        Connection connection= DButil.getConnection();
        String sql="select name,password from user";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ResultSet set = ps.executeQuery();
            while(set.next()){
                String uname = set.getString(1);
                String upassword=set.getString(2);
                if(uname.equals(name)&&upassword.equals(password))return true;
            }

        }catch (Exception e){
            e.printStackTrace();
        }

        return false;
    }
}

数据库表对应类

User类

package com.suoer.bankms.user.module;

public class User {
    private String id;
    private String name;
    private String password;
    private String bank;
    private String account;
    private String IDcard;
    private String sex;
    private int age;
    private String native_place;
    private String phone_number;
    private int native_sum;
    private int foreign_sum;

    public User(){

    }


    public User(String id, String name, String password, String bank, String account, String IDcard,String sex,int age,   String native_place, String phone_number, int native_sum, int foreign_sum) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.bank = bank;
        this.account = account;
        this.IDcard = IDcard;
        this.sex = sex;
        this.age = age;
        this.native_place = native_place;
        this.phone_number = phone_number;
        this.native_sum = native_sum;
        this.foreign_sum = foreign_sum;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getIDcard() {
        return IDcard;
    }

    public void setIDcard(String IDcard) {
        this.IDcard = IDcard;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getNative_place() {
        return native_place;
    }

    public void setNative_place(String native_place) {
        this.native_place = native_place;
    }

    public String getPhone_number() {
        return phone_number;
    }

    public void setPhone_number(String phone_number) {
        this.phone_number = phone_number;
    }

    public int getNative_sum() {
        return native_sum;
    }

    public void setNative_sum(int native_sum) {
        this.native_sum = native_sum;
    }

    public int getForeign_sum() {
        return foreign_sum;
    }

    public void setForeign_sum(int foreign_sum) {
        this.foreign_sum = foreign_sum;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", bank='" + bank + '\'' +
                ", account='" + account + '\'' +
                ", IDcard='" + IDcard + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", native_place='" + native_place + '\'' +
                ", phone_number='" + phone_number + '\'' +
                ", native_sum=" + native_sum +
                ", foreign_sum=" + foreign_sum +
                '}';
    }
}

Event类

package com.suoer.bankms.user.module;

import java.sql.Date;

public class Event {
    private int id;
    private String name;
    private int account_in;
    private int account_out;
    private Date date;

    public Event(){

    }

    public Event(int id, String name, int account_in, int account_out, Date date) {
        this.id = id;
        this.name = name;
        this.account_in = account_in;
        this.account_out = account_out;
        this.date = date;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAccount_in() {
        return account_in;
    }

    public void setAccount_in(int account_in) {
        this.account_in = account_in;
    }

    public int getAccount_out() {
        return account_out;
    }

    public void setAccount_out(int account_out) {
        this.account_out = account_out;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    @Override
    public String toString() {
        return "Event{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", account_in=" + account_in +
                ", account_out=" + account_out +
                ", date=" + date +
                '}';
    }
}

DAO类

用户DAO

package com.suoer.bankms.user.dao;

import com.suoer.bankms.user.module.Event;
import com.suoer.bankms.user.module.User;
import com.suoer.bankms.util.DButil;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class UserDao {

    private static Connection connection= DButil.getConnection();
    private final float rate= (float) 6.7;


    //查询个人信息
    public User selectByNameAndPassword(String account,String password){
        String sql="select * from user where account = ? and password = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,account);
            ps.setString(2,password);
            ResultSet set = ps.executeQuery();

            if(set.next()){
                 String id=set.getString(1);
                 String name=set.getString(2);
                 String bank=set.getString(4);
                 String IDcard=set.getString(6);
                 String sex=set.getString(7);
                 int age=set.getInt(8);
                 String native_place=set.getString(9);
                 String phone_number=set.getString(10);
                 int native_sum=set.getInt(11);
                 int foreign_sum=set.getInt(12);

                 return new User(id,name,password,bank,account,IDcard,sex,age,native_place,phone_number,native_sum,foreign_sum);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

    //修改部分信息--姓名
    public boolean updateByNameAndPassword1(String name,String password,String newname){
        String sql="update user set name= ? where name = ? and password = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,newname);
            ps.setString(2,name);
            ps.setString(3,password);

            int i = ps.executeUpdate();
            if(i>0) {
                System.out.println("修改成功");
                return true;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("修改失败");
        return false;
    }

    //修改部分信息--年龄
    public boolean updateByNameAndPassword2(String name,String password,int newage){
        String sql="update user set age = ? where name = ? and password = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setInt(1,newage);
            ps.setString(2,name);
            ps.setString(3,password);

            int i = ps.executeUpdate();
            if(i>0) {
                System.out.println("修改成功");
                return true;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("修改失败");
        return false;
    }

    //修改部分信息--籍贯
    public boolean updateByNameAndPassword3(String name,String password,String newnative_place){
        String sql="update user set native_place = ? where name = ? and password = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,newnative_place);
            ps.setString(2,name);
            ps.setString(3,password);

            int i = ps.executeUpdate();
            if(i>0) {
                System.out.println("修改成功");
                return true;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("修改失败");
        return false;
    }

    //修改部分信息--手机号
    public boolean updateByNameAndPassword4(String name,String password,String phone){
        String sql="update user set phone_number = ? where name = ? and password = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,phone);
            ps.setString(2,name);
            ps.setString(3,password);

            int i = ps.executeUpdate();
            if(i>0) {
                System.out.println("修改成功");
                return true;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("修改失败");
        return false;
    }

    //转账
    public void transfer(String myname,String password,String hisname,String IDcard,int num){
        String sql1="update user set native_sum=native_sum-? where name = ? and password = ?";
        String sql2="update user set native_sum=native_sum+? where name = ? and IDcard = ?";
        String sql3="insert into event(name,account_in,account_out,date) values(?,?,?,?)";
        try{
            PreparedStatement ps1=connection.prepareStatement(sql1);
            ps1.setInt(1,num);
            ps1.setString(2,myname);
            ps1.setString(3,password);

            PreparedStatement ps2=connection.prepareStatement(sql2);
            ps2.setInt(1,num);
            ps2.setString(2,hisname);
            ps2.setString(3,IDcard);

            PreparedStatement ps3=connection.prepareStatement(sql3);
            ps3.setString(1,myname);
            ps3.setInt(2,-num);
            ps3.setInt(3,num);
            Date date=new Date(System.currentTimeMillis());
            ps3.setDate(4,new java.sql.Date(date.getTime()));


            if(ps1.executeUpdate()>0&&ps2.executeUpdate()>0&&ps3.executeUpdate()>0)System.out.println("转账成功");
            else System.out.println("转账失败");
            System.out.println(selectByNameAndPassword(myname,password));


        }catch (Exception e){
            e.printStackTrace();
        }

    }

    //查询转账记录
    public List<Event> selectEvents(String name){
        List<Event> list=new ArrayList<>();

        String sql="select * from event where name = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,name);

            ResultSet set = ps.executeQuery();

            while(set.next()){
                int id=set.getInt(1);
                int account_in=set.getInt(3);
                int account_out=set.getInt(4);
                Date date=new Date(set.getDate(5).getTime());
                list.add(new Event(id,name,account_in,account_out,date));
            }
            return list;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

    //外币兑换

    //5.外币兑换
    public boolean exChange(String name,float amount){//账户 需要兑换外币的数量
        //定义动态sql语句(update语句)
        String sql1="select native_sum,foreign_sum from user where name=?";
        String sql2="update user set native_sum=? ,foreign_sum=? where name=? ";
        //获取汇率
        float nativeAmount = 0;//本币余额
        float foreignAmount = 0;//外币余额
        try {
            //获取预编译对象
            PreparedStatement ps1 = connection.prepareStatement(sql1);

            //设置占位符的值
            ps1.setString(1,name);

            //执行SQL语句
            ResultSet resultSet = ps1.executeQuery();
            if(resultSet.next()){
                nativeAmount=resultSet.getFloat(1);//native_sum返回值是String还是float
                foreignAmount=resultSet.getFloat(2);
            }
            if(nativeAmount-amount>=0){
                //如果余额足够则继续执行
                PreparedStatement ps2 = connection.prepareStatement(sql2);
                ps2.setFloat(1, nativeAmount-amount);
                ps2.setFloat(2,foreignAmount+amount*rate);
                ps2.setString(3,name);
                int result=ps2.executeUpdate();
                if(result>0){
                    System.out.printf("兑换成功!国内账户余额:%f,国外账号余额:%f",nativeAmount-amount,foreignAmount+amount*rate);
                    return true;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.printf("兑换失败!国内账户余额:%f,国外账号余额:%f",nativeAmount,foreignAmount);
        return false;
    }




}

管理员DAO

package com.suoer.bankms.admin.dao;

import com.suoer.bankms.user.module.User;
import com.suoer.bankms.util.DButil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class AdminDao {
    private static Connection connection= DButil.getConnection();
    //查询所有用户信息
    public List<User> selectAll(){
        List<User> list= new ArrayList<>();
        String sql="select* from user ";

        try {
            PreparedStatement ps= connection.prepareStatement(sql);
            ResultSet set = ps.executeQuery();

            while(set.next()){
                String id=String.valueOf(set.getInt(1));
                String name=set.getString(2);
                String password=set.getString(3);
                String bank =set.getString(4);
                String account=set.getString(5);
                String IDcard=set.getString(6);
                String sex=set.getString(7);
                int age = set.getInt(8);
                String native_place=set.getString(9);
                String phone_number=set.getString(10);
                int native_sum= (int) set.getFloat(11);
                int foreign_sum= (int) set.getFloat(12);

                list.add(new User(id,name,password,bank,account,IDcard,sex,age,native_place,phone_number,native_sum,foreign_sum));
            }

            return list;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;

    }
    //按姓名查询用户信息
    public User selectByName(String name){
        String sql="select * from user where name = ?";

        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,name);

            ResultSet set = ps.executeQuery();

            if(set.next()){
                String id=set.getString(1);
                String password=set.getString(3);
                String bank=set.getString(4);
                String account=set.getString(5);
                String IDcard=set.getString(6);
                String sex=set.getString(7);
                int age=set.getInt(8);
                String native_place=set.getString(9);
                String phone_number=set.getString(10);
                int native_sum=set.getInt(11);
                int foreign_sum=set.getInt(12);

                return new User(id,name,password,bank,account,IDcard,sex,age,native_place,phone_number,native_sum,foreign_sum);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
   //添加用户信息
    public boolean add(User user){
        String sql="INSERT INTO USER(id,NAME,PASSWORD,bank,ACCOUNT,IDcard,sex,age,native_place,phone_number,native_sum,foreign_sum)  values(?,?,?,?,?,?,?,?,?,?,?,?)";


        try {
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,user.getId());
            ps.setString(2, user.getName());
            ps.setString(3, user.getPassword());
            ps.setString(4, user.getBank());
            ps.setString(5, user.getAccount());
            ps.setString(6, user.getIDcard());
            ps.setString(7, user.getSex());
            ps.setInt(8,user.getAge());
            ps.setString(9,user.getNative_place());
            ps.setString(10,user.getPhone_number());
            ps.setInt(11,user.getNative_sum());
            ps.setInt(12,user.getForeign_sum());

            if(ps.executeUpdate()>0)return true;

        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }
    //删除用户信息
    public boolean delete(String name ,String IDcard){
        String sql="delete from user where name=? and IDcard =?";
        try{
            PreparedStatement ps=connection.prepareStatement(sql);
            ps.setString(1,name);
            ps.setString(2,IDcard);

            if(ps.executeUpdate()>0)return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }


}

数据库连接(工具类)

package com.suoer.bankms.util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DButil {
    public static Connection getConnection(){
        Connection connection=null;

        final String URL = "jdbc:mysql://localhost:3306/bankms?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
        final String DRIVER="com.mysql.cj.jdbc.Driver";
        final String USER="root";
        final String PASSWORD="QTqt_456852";
        try{
            Class.forName(DRIVER);
            connection= DriverManager.getConnection(URL,USER,PASSWORD);
        }catch (Exception e){
            e.printStackTrace();
        }
        return connection;
    }

    public static void main(String[] args) {
        System.out.println(getConnection());
    }

}
ordercheck方法

package com.suoer.bankms.util;

public class OrderCheck {
    public static int checkOrder(String input){
        if(input.matches("\\d")){
            return Integer.parseInt(input);
        }else return -1;
    }
}

知识点总结

数据库连接
数据库连接分为加载驱动、注册驱动和获取连接:

@Test
    public void testConnection4() {
        try {
            //1.数据库连接的4个基本要素:
            String url = "jdbc:mysql://localhost:3306/test";
            String user = "root";
            String password = "abc123";
            String driverName = "com.mysql.jdbc.Driver";

            //2.加载驱动 (①实例化Driver ②注册驱动)
            Class.forName(driverName);


            //Driver driver = (Driver) clazz.newInstance();
            //3.注册驱动
            //DriverManager.registerDriver(driver);
            /*
            可以注释掉上述代码的原因,是因为在mysql的Driver类中声明有:
            static {
                try {
                    DriverManager.registerDriver(new Driver());
                } catch (SQLException var1) {
                    throw new RuntimeException("Can't register driver!");
                }
            }

             */


            //3.获取连接
            Connection conn = DriverManager.getConnection(url, user, password);
            System.out.println(conn);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

DAO中涉及的方法有

String sql1="select native_sum,foreign_sum from user where name=?";//SQL语句
           //获取预编译对象
            PreparedStatement ps1 = connection.prepareStatement(sql1);

            //设置占位符的值
            ps1.setString(1,name);

            //执行SQL语句
            ResultSet resultSet = ps1.executeQuery();

java和sql的Date类型转换:
java.sql中有Date、Timestamp、Time三个类,分别显示年月日、年月日时分秒、时分秒。
java.util中有Date类。
转换方式如代码所示:

@Test
    public void datetest(){
    Date date=new Date();//该空参构造器实际上调用Date(Long long),参数为System.currentTimeMillis()
    System.out.println(date);
    System.out.println(date.getTime());

    java.sql.Date sqldate=new java.sql.Date(date.getTime());
    System.out.println(sqldate);

    Timestamp timestamp=new Timestamp(date.getTime());
    System.out.println(timestamp);

    Date date1=new Date(sqldate.getTime());
    System.out.println(date1);
}

打印:

java 金融 必问 金融java开发_java_08


System类中的exit()方法:

此方法用于终止JVM,status=0表示正常终止,否则为异常终止.
此方法效果上等于直接调用Runtime.getRuntime().exit(status);
public static void exit(int status) {
        Runtime.getRuntime().exit(status);
    }

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片:

java 金融 必问 金融java开发_java_09

带尺寸的图片:

java 金融 必问 金融java开发_java_10

居中的图片:

java 金融 必问 金融java开发_java 金融 必问_11

居中并且带尺寸的图片:

java 金融 必问 金融java开发_User_12

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

生成一个适合你的列表

  • 项目
  • 项目
  • 项目
  1. 项目1
  2. 项目2
  3. 项目3


创建一个表格

一个简单的表格是这么创建的:

项目

Value

电脑

$1600

手机

$12

导管

$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列

第二列

第三列

第一列文本居中

第二列文本居右

第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE

ASCII

HTML

Single backticks

'Isn't this fun?'

‘Isn’t this fun?’

Quotes

"Isn't this fun?"

“Isn’t this fun?”

Dashes

-- is en-dash, --- is em-dash

– is en-dash, — is em-dash

创建一个自定义列表

HTML

Authors John Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML。

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 java 金融 必问 金融java开发_java_13

java 金融 必问 金融java开发_User_14

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章


Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid


  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:


张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五


这将产生一个流程图。:



长方形

圆角长方形

菱形


  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:


Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no


  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎