Day6--零钱通(记账)小项目测试

Day6–零钱通(记账)小项目测试
先看功能
在这里插入图片描述
这个小项目还是利用封装好的jdbc工具去实现数据持久化的项目
下面出代码
数据库建表代码如下,id我们要实现让他自增
在这里有一个小细节,关于数据库中时间类型的设定 如果设定为datatime,
从数据获取字段直接输出的化就会出现2024-07-20T16:23这种奇怪的格式,
在时间数据入库的时候也容易出错,所以这里就设成了字符串类型

CREATE TABLE money(
id int AUTO_INCREMENT PRIMARY KEY,
typein VARCHAR(255) not null,
amount DOUBLE not null,
timein VARCHAR(255) not null,
balance DOUBLE not null)

jdbc连接工具在Day5_2–学生信息管理系统数据持久化改造(德鲁伊)的文章中已经给出

money表对应的javabean实体类发出来,需要自己写,用ptg插件很方便。

这个项目比较简单所以我把功能实现直接写到了表现层,没有封装方法,这样展示也比较直观

package ChangeCard.UserUi;

import ChangeCard.Model.money;
import ChangeCard.Tools.jdbcTool;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;

public class Ui {

    public static void main(String[] args) throws Exception {
        try {
            Scanner scanner = new Scanner(System.in);
            Boolean flag = true;
            while (flag) {

                System.out.println("-----------------零钱通菜单-----------------");
                System.out.println("               1  零钱通明细");
                System.out.println("               2  收益入账");
                System.out.println("               3  消费");
                System.out.println("               4  退     出");
                System.out.print("请选择(1-4):");
                int i = scanner.nextInt();
                switch (i) {
                    case 1: {
                        System.out.println("-----------------零钱通明细-----------------");
                        List<money> rs = jdbcTool.select("select * from money", money.class);

                        for (int j = 0; j < rs.size(); j++) {
                            //支出收入金额
                            String amount = "";
                            if (rs.get(j).getAmount() >= 0) {
                                amount = "+" + String.valueOf(rs.get(j).getAmount());
                            } else amount = String.valueOf(rs.get(j).getAmount());
                            //日期
                            String time = rs.get(j).getTimein();
                            System.out.println(rs.get(j).getTypein() + "\t" + amount + "\t" + time + "\t" + "余额:" + rs.get(j).getBalance());
                        }
                    }
                    break;
                    case 2: {
                        System.out.print("请输入收益来源:");
                        String type = scanner.next();
                        System.out.print("请输入收入金额:");
                        Double mount = scanner.nextDouble();
                        Date data = new Date();
                        SimpleDateFormat now = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        String time = now.format(data);

                        List<money> select = jdbcTool.select("select balance from money where id=(select MAX(id) from money)", money.class);
                        Double balance = select.get(0).getBalance();

                        jdbcTool.cru("insert into money values(null,?,?,?,?)", type, mount, time, balance + mount);
                    }
                    break;
                    case 3: {

                        Date data = new Date();
                        SimpleDateFormat now = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                        String time = now.format(data);


                        List<money> select = jdbcTool.select("select balance from money where id=(select MAX(id) from money)", money.class);
                        Double balance = select.get(0).getBalance();
                        System.out.println("余额:" + balance);
                        System.out.print("请输入消费项目:");
                        String type = scanner.next();
                        System.out.print("请输入消费金额:");
                        Double mount = scanner.nextDouble();
                        if (balance - mount >= 0) {
                            jdbcTool.cru("insert into money values(null,?,?,?,?)", type, -mount, time, balance - mount);
                        } else System.out.println("余额不足");
                    }
                    break;
                    case 4:
                        flag = false;
                        break;
                    default:
                        System.out.println("请正确选择业务!");
                        break;
                }
            }
        }catch (InputMismatchException e){
            System.out.println("类型输入错误");
        }
    }
}

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT ·南栀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值