基于控制台的JAVA购物系统

01效果展示:

系统功能:

1、 会员中心

​ 1.1修改资料

​ 1.2我的订单

​ 1.3我的礼物

​ 1.4返回上层

2、 进入购物

​ 2.1选择商品

​ 2.2返回上层

3、 试试手气

​ 3.1开始手气之旅

​ 3.2返回上层

4、退出系统

功能说明:

首先进入主界面:

基于控制台的JAVA购物系统_第1张图片

用户输入1,会员中心,显示以下菜单:

基于控制台的JAVA购物系统_第2张图片

用户输入2,进入购物,显示以下菜单:

14

用户输入3,试试手气,显示以下菜单:

基于控制台的JAVA购物系统_第3张图片

用户输入4,退出系统,显示以下:

基于控制台的JAVA购物系统_第4张图片

项目要求:

基于控制台的JAVA购物系统_第5张图片

02分层结构的理解:

分层效果图:

基于控制台的JAVA购物系统_第6张图片

基础学习的时候采用的是,表示层、持久层、业务层:

java三层架构:表示层、持久层、业务层
1、表示层(view):负责页面的渲染和数据的显示。
2、持久层(dao):数据访问,封装了对数据库访问细节,数据库增删改查的方法
3、业务层(service):业务逻辑层,处理业务操作,可以和外部系统交流,一般项目都用service比较多,service供外部调用,等于对dao,modal(实体类)等进行了包装,从而增加了这么一个层次,主要为了降低耦合,面向接口编程。
entity:实体层,与数据库的某个表相关联,modal一般都是对象。
action层:引用对应的Service层

更多的三层架构内容可参考:JAVA中Action层, Service层 ,model层 和 Dao层的功能区分

调用的流程

可参考JAVA控制台下:控制台商城购物系统(二)项目小结

03 视频演义的部分

用手机微信扫一扫登录(如果扫一次登录界面还是存在,那尝试重新再扫一次)
视频链接如下:

视频1(JDBC封装):
https://ke.qq.com/webcourse/index.html#cid=2501502&term_id=102606087&taid=31744082&lite=1&vid=5285890803972080479
视频2(项目展示,登录功能实现):
https://ke.qq.com/webcourse/index.html#cid=2501502&term_id=102606087&taid=31861685&lite=1&vid=5285890804012380061
视频3(项目功能实现):
https://ke.qq.com/webcourse/index.html#cid=2501502&term_id=102606087&taid=31902831&lite=1&vid=5285890804032047493

后续有机会补似网盘符形式的链接

04 视频演示内相关资源下载

资源链接:
链接:https://share.weiyun.com/DErlw1iJ 密码:6fieui
如下三图:

5

基于控制台的JAVA购物系统_第7张图片

基于控制台的JAVA购物系统_第8张图片

注意:SQLyog加压后得到如下图,其中sn.txt 为激活码,激活后直接点击SQLyog.exe运行即可
基于控制台的JAVA购物系统_第9张图片

如果你电脑安装除了有mysql5.5还有mysql8.0或以上时,这时你需要关闭mysql8.0或以上,SQLyog才能连接。

基于控制台的JAVA购物系统_第10张图片

基于控制台的JAVA购物系统_第11张图片

05 参考视频演示以及大神的源码

首先是观看视频1、2、3照着码
再参考大神的源码接着码
如果自己静下心来、认真的话以及有同学帮你忙(旁观者清嘛!),个人用大概一天是可以完成的(因为第二天就答辩了)
最后就是调试了

参考大神的的源码:JAVA控制台下:控制台商城购物系统(二)项目小结

06 遇到的小bug

  • 快捷键上的报错

    1. 按F11运行时遇到java异常断点时,控制台是没有输出的,会自动跳到Debug(调试)状态,而且是没有打点(就是一般调式时都会在某一行的左边打个点然后才去点击Debug)情况下。
    2. 最后了解到可能是我用的是可以直接运行的集成Eclipse(在如鹏网上找的),不用安装的这种软件(即集成的)有一定的不确定因素,建议安装比较新版的Eclipse(不集成的)
    3. 最后还是运行完整个步骤,所以也没有去重新安装不集成的Eclipse(电脑空间有限,不想再增加负担),运行的话点击有个三角含在圈圈里的按钮
      基于控制台的JAVA购物系统_第12张图片

    12

  • Generated keys not requested的报错

    1. 参考了mysql获取自动生成的主键报错:Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.execu
    2. 使用了其中的这一段,

      将代码修改成这样就不会报错:
      pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
      rs=pstmt.getGeneratedKeys();
  • 会员中心的修改资料报错

    1. 更新密码时,控制台输出更新成功,但是数据库就一直没更改过

    2. 后来发现是sql语句的错误

    3. 正确如下
      基于控制台的JAVA购物系统_第13张图片

07成品

注意:源码里有几个名字差不多,但是内容不一样的,swing界面实现建议直接看第二个链接的源码内容

这个项目链接:

链接:https://share.weiyun.com/svuAZbn0 密码:a79jh9

我找了班里的几位大佬,请求到了两个项目,他(她)们都用了swing实现
链接:https://share.weiyun.com/38c8CXKG 密码:eaybs7

08小结

  • 我主要在演示代码运行这一块,总的来说回答的还行,边运行边讲解其中的内容
  • 唯一觉得遗憾的是自己swing学的菜,或者根本就没学,还是的静下心来学习
  • 这个项目给我最大的收获是可以把自己学的java内容拼接起来,完成的那一刻是真的开心
  • 与小组成员讨论时,那种一起调试bug时的氛围有点陶醉,也是为自己这个学期学java画个勉强过关的句号

09不足

  1. 断点调式是真的很重要!!!但是我的Eclipse编译器不知道怎么了,断点调试是真的不行,也有可能是我的打开调式的方式不对,所以自己在调式上操作很没有耐心(在小组讨论时,根据组长的提示用打印输出来判断哪里错误,而且还蛮好用,这让我想起用python做练习时,也是经常用打印函数来判断错误)
  2. 没有用swing来完成这个项目,有点遗憾
  3. 另一个组员的想法:如果结合网页来结合这个项目,做到在页面上的用户交互,这样觉得会更好(埋个坑吧,用户有想法了,也来搞一搞)

最后,感谢小组的帮忙,感谢班上大佬的源码!!!