栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC 链接数据库 实现ATM

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDBC 链接数据库 实现ATM

机试

现在有一银行,要做一套取款系统,需要使用控制台操作。银行所提需求要求 必能够进行简单地新增用户、修改用户信息、存钱、取钱操作。

要求使用控制台操作scanner,同时使用JDBC数据库进行CURD的操作,数据库要求Mysql。

  1. 正确使用JDBC连接数据库(25)
  2. 正确书写控制逻辑(15)
  3. 新增用户。(15)
  4. 修改用户信息。(15)
  5. 给用户存钱。(15)
  6. 给用户取钱。(15)
 创建数据库(mysql)
create database test default character set utf8;
use test;
create table atm
(
id int primary key auto_increment,
name varchar(6),
money varchar(11)
);
insert atm values(null,"z","100");

select * from atm;
 创建实体类
public class Atm {
    private int id;
    private String name;
    private String money;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getMoney() {
        return money;
    }
    public void setMoney(String money) {
        this.money = money;
    }
}
链接数据库
public class DButil {
    public static Connection getConnection() {
        Connection conn=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false","root","root");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
}
dao层 (实现功能)
public class BankDao{
    public ArrayList getList() {
        // 存储从数据库中取出来的数据
        ArrayList ar = new ArrayList();
        Connection conn = DButil.getConnection();
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            String sql = "select * from atm";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();// 执行数据库查询的方法,放到rs中
            while (rs.next()) {
                Atm bankm = new Atm();
                bankm.setId(rs.getInt("id"));
                bankm.setName(rs.getString("name"));
                bankm.setMoney(rs.getString("money"));
                ar.add(bankm);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 当数据库使用后必须关闭,如果没有关闭数据库的接口有限,下次就不能连接
            try {
                if (rs != null) {
                    rs.close();
                }
                if (ps != null) {
                    ps.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return ar;
    }
//添加
    public void inset(Atm Bankm) {
        Connection conn = DButil.getConnection();
        PreparedStatement ps = null;
        String sql = "insert into atm values(null,?,?)";
        try {
            ps = conn.prepareStatement(sql);
            // 这个方法用于改变数据库数据,a代表改变数据库的条数
            ps.setString(1, Bankm.getName());
            ps.setString(2, Bankm.getMoney());
            int a = ps.executeUpdate();
            if (a > 0) {
                System.out.println("添加成功");
            } else {
                System.out.println("添加失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            // 关闭
            if (ps != null) {
                ps.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }
    // 修改 jian
    public void update(Atm Bankm){
        Connection conn = DButil.getConnection();
        PreparedStatement ps = null;
        String sql = "update atm set name=?, money=? where id=?";
        try {
            ps = conn.prepareStatement(sql);

            ps.setString(1,Bankm.getName());
            ps.setString(2, Bankm.getMoney());
            ps.setInt(3,Bankm.getId());

            int a = ps.executeUpdate();
            if (a > 0) {
                System.out.println("修改成功");
            } else {
                System.out.println("修改失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭
                if (ps != null) {
                    ps.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
    //存钱
    public void updatejia(Atm Bankm) {
        Connection conn = DButil.getConnection();
        PreparedStatement ps = null;
        String sql = "update atm set money=money+? where id=?";
        try {
            ps = conn.prepareStatement(sql);
            ps.setString(1, Bankm.getMoney());
            ps.setInt(2, Bankm.getId());
            int a = ps.executeUpdate();
            if (a > 0) {
                System.out.println("存入成功");
            } else {
                System.out.println("存入失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭
                if (ps != null) {
                    ps.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }

    // 取钱
    public void updatejian(Atm Bankm) {
        Connection conn = DButil.getConnection();
        PreparedStatement ps = null;
        String sql = "update atm set money=money-? where id=?";
        try {
            ps = conn.prepareStatement(sql);
            ps.setString(1, Bankm.getMoney());
            ps.setInt(2, Bankm.getId());
            int a = ps.executeUpdate();
            if (a > 0) {
                System.out.println("取钱成功");
            } else {
                System.out.println("取钱失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭
                if (ps != null) {
                    ps.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
}
实现类
public class Test {
    public static void main(String[] args) {

        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        BankDao bankd = new BankDao();
        Atm bankm = new Atm();
        while (true) {
            System.out.println("*****************中国人民银行*******************");
            System.out.print("        1、所有信息");
            System.out.println("      2、新增用户");
            System.out.print("        3、修改用户信息");
            System.out.println("      4、存钱");
            System.out.print("        5、取钱");
            System.out.println("*****************中国人民银行*******************");

            System.out.println("请输入功能号:");
            int a = sc.nextInt();
            if (a == 1) {//查询w
                ArrayList ar = new BankDao().getList();
                for (Atm ne : ar) {
                    System.out.println("----编号:" + ne.getId() + "----用户名:" + ne.getName() + "----余额:" + ne.getMoney() + "----r");
                }

            } else if (a == 2) { //添加用户 --插入
                System.out.println("请输入用户名");
                bankm.setName(sc.next());
                System.out.println("请输入预存款");
                bankm.setMoney(sc.next());
                bankd.inset(bankm);
            } else if (a == 3) { //修改
                System.out.println("请输入修改编号");
                bankm.setId(sc.nextInt());
                System.out.println("请输入用户名");
                bankm.setName(sc.next());
                System.out.println("请输入金额");
                bankm.setMoney(sc.next());
                bankd.update(bankm);
            } else if (a == 4) {//存款-修改
                System.out.println("请输入存款编号");
                bankm.setId(sc.nextInt());
                System.out.println("请输入存入金额");
                bankm.setMoney(sc.next());
                bankd.updatejia(bankm);

            } else if (a == 5) { //取款-修改
                System.out.println("请输入取款编号");
                bankm.setId(sc.nextInt());
                System.out.println("请输入取出金额");
                bankm.setMoney(sc.next());
                bankd.updatejian(bankm);
            }
        }
    }
}
运行效果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号