基于Springboot+myBatis的记账系统

 博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

功能演示

详情演示视频请文字末尾公众号咨询,我会发给您;

一、项目介绍

1:用户的注册和登录
2:添加类型信息
3:对消费进行记账
4:通过柱状图进行数据统计显示

二、运行环境

1:服务端idea2018进行开发;
2:mysql数据库进行数据存储;
3:需要jdk1.8以上

三、使用技术

1:框架Springboot

2:框架myBatis

四、数据库设计

DROP TABLE IF EXISTS `money`;
CREATE TABLE `money` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `moneymsg` varchar(255) DEFAULT NULL,
  `moneytypeid` varchar(255) DEFAULT NULL,
  `moneytypename` varchar(255) DEFAULT NULL,
  `moneydate` varchar(100) DEFAULT NULL,
  `moneytime` varchar(100) DEFAULT NULL,
  `userid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for type
-- ----------------------------
DROP TABLE IF EXISTS `type`;
CREATE TABLE `type` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `typename` varchar(255) DEFAULT NULL,
  `userid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `uname` varchar(200) CHARACTER SET utf8 NOT NULL,
  `uphone` varchar(100) CHARACTER SET utf8 NOT NULL,
  `upswd` varchar(200) CHARACTER SET utf8 NOT NULL,
  `utime` varchar(300) CHARACTER SET utf8 NOT NULL,
  `usearch` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=latin1;

五、部分代码和截图

类型信息

记录信息 

图表统计信息 

1:Controoler信息

    @RequestMapping("addUser")
    public ModelAndView adduser(User user) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");// 设置日期格式
        user.setUtime(df.format(new Date()));
        userMapper.insert(user);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("login");//逻辑视图
        return modelAndView;
    }


    @RequestMapping("login")
    public ModelAndView login(HttpServletRequest request,User user) {

        Map<String ,Object> map = new HashMap<>();
        map.put("uphone",user.getUphone());
        map.put("upswd",user.getUpswd());
        List<User> list = userMapper.selectByMap(map);

        ModelAndView modelAndView = new ModelAndView();
        if(list.size()>0){

            HttpSession session = request.getSession();
            session.setAttribute("userid",list.get(0).getId());
            session.setAttribute("username",list.get(0).getUname());

            modelAndView.setViewName("index");//逻辑视图
        }else{
            ErrorModel errorModel = new ErrorModel();
            errorModel.setErrorInfor("用户不存在,手机号码或者密码错误");
            modelAndView.addObject("dateResult",errorModel);
            modelAndView.setViewName("login");//逻辑视图
        }
        return modelAndView;
    }




    @RequestMapping("deleMoney")
    public String deleMoney(String id,String userid) {
        moneyMapper.deleteById(id);
        return "forward:/listMoney?userid="+userid;//默认先找了页面
    }

    @RequestMapping("deleType")
    public String deleType(String typeid,String userid) {
        typeMapper.deleteById(typeid);
        return "forward:/listType?userid="+userid;//默认先找了页面
    }

    @RequestMapping("listType")
    public ModelAndView listType(int userid) {

        Map<String ,Object> map = new HashMap<>();
        map.put("userid",userid);

        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("listData",typeMapper.selectByMap(map));
        modelAndView.setViewName("list_type");//逻辑视图
        return modelAndView;
    }
2:页面信息 
         <table width="100%" border="0" cellspacing="0" cellpadding="0" id="main-tab">
                <tr>
                    <th align="center" valign="middle" class="borderright">编号</th>
                    <th align="center" valign="middle" class="borderright">类型名称</th>
                    <th align="center" valign="middle">操作</th>
                </tr>


                <c:forEach items="${listData}" var="model" varStatus="sta">
                    <tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'">
                        <td align="center" valign="middle" class="borderright borderbottom">${sta.index+1}
                        </td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.typename}
                        </td>


                        <td align="center" valign="middle" class="borderbottom"></span>
                            <a href="deleType?typeid=${model.id}&userid=${userid}" target="mainFrame"
                         onFocus="this.blur()" class="add">删除</a></td>
                    </tr>
                </c:forEach>

            </table>

更多毕业设计可以浏览我的个人主页哦!

七、源码咨询

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

https://download.csdn.net/download/u014388322/88377062

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Android毕业设计源码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值