0


【JDBC实战】水果库存系统 [设计阶段]

CSDN话题挑战赛第2期
参赛话题:学习笔记

在这里插入图片描述
在这里插入图片描述

JDBC专栏

(点击进入专栏)
【1】idea添加mysql-jar包
【2】使用IDEA连接数据库,执行增删改操作。
【3】IDEA连接数据库,执行查询操作,返回结果集并输出。
【4】JDBC实战 水果库存系统 [设计阶段]


JDBC实战,实现水果库存系统


前言

JDBC专栏,我们在前面的文章中学习了

mysql-jar

包的导入,使用JDBC规范

连接数据库

,以及JDBC对数据库进行

等常规操作。
接下来,就到检验学习成果的时刻了,我们将运用JDBC一系列常规操作,实现一个水果库存系统,将之前学到的知识融会贯通在一起…


一、水果库存系统介绍

水果库存系统的

需求

是实现以下几个功能:

  • 查看水果库存列表;
  • 添加水果库存信息;
  • 查看特定水果库存信息;
  • 水果下架;
  • 退出;

只要是

更新

或者是

查看

信息的功能,都需要我们去使用JDBC规范连接数据库来实现。
在一开始,我们先不考虑代码是否冗余的问题,第一目标是

 实现需求

,基本功能实现之后再对代码进行

优化


二、结构设计:

1).Fruit类

在项目工程中,我们需要创建一个

Fruit

类,用于存放库存系统中每一种水果的信息;
每种水果都包含以下

属性

  1. 编号;
  2. 水果名称;
  3. 水果单价;
  4. 库存数量;
  5. 备注;

因此,在

Fruit

类中,我们需要为其设置对应的

属性

构造方法

Get()

Set()

方法,以及重写

toString()

方法从而方便在需要查看水果库存信息时输出…

Fruit类的代码:

/**
 * @author .29.
 * @create 2022-09-22 22:15
 */publicclassFruit{//属性privateInteger fid;//水果编号privateString fname;//水果名称privateInteger price;//水果单价privateInteger fcount;//库存数量privateString remark;//备注//构造方法publicFruit(){}publicFruit(int fid,String fname,int price,int fcount,String remark){this.fid = fid;this.fname = fname;this.price = price;this.fcount = fcount;this.remark = remark;}//对象get、set方法publicIntegergetFid(){return fid;}publicvoidsetFid(Integer fid){this.fid = fid;}publicStringgetFname(){return fname;}publicvoidsetFname(String fname){this.fname = fname;}publicIntegergetPrice(){return price;}publicvoidsetPrice(Integer price){this.price = price;}publicIntegergetFcount(){return fcount;}publicvoidsetFcount(Integer fcount){this.fcount = fcount;}publicStringgetRemark(){return remark;}publicvoidsetRemark(String remark){this.remark = remark;}//重写toString方法@OverridepublicStringtoString(){return fid +"\t\t\t"+ fname +"\t\t\t"+ price +"\t\t\t"+ fcount +"\t\t\t"+ remark;}}


2).Menu类

准备好Fruit类之后,我们还需要准备一个菜单类

Menu

,在菜单类中,需要

显示菜单

的方法,还有

需求实现

的方法。
有了这些方法,才能实现水果库存系统的功能:

  • 菜单显示:showMainMenu()
  • 查看水果库存信息:showFruitList()
  • 添加水果库存信息:addFruit()
  • 查看指定水果库存信息:showFruitInfo()
  • 水果下架:delFruit()
  • 退出:exit()

在设计阶段,我们先准备好需要的结构,具体的功能代码实现可以放在下一阶段进行。

Menu类初版的代码(未实现功能):

/**
 * @author .29.
 * @create 2022-09-22 22:19
 *
 *///菜单类publicclassMenu{//显示主菜单publicintshowMainMenu(){System.out.println("==================水果库存界面=================");System.out.println("1.查看水果库存列表");System.out.println("2.添加水果库存信息");System.out.println("3.查看特定水果库存信息");System.out.println("4.水果下架");System.out.println("5.退出");System.out.println("==============================================");System.out.print("请选择:");int input = scan.nextInt();return input;}//查看水果库存列表publicvoidshowFruitList(){return;}//添加水果库存信息--- 业务方法:添加库存记录publicvoidaddFruit(){return;}//查看指定水果库存信息publicvoidshowFruitInfo(){return;}//水果下架publicvoiddelFruit(){return;}//退出方法publicbooleanexit(){returntrue;}}


3).Client类

水果库存系统的使用,是需要客户通过

选择

菜单功能选项,系统再

运行

客户需要使用的功能。所以我们还需要一个客户类

Client

,实现先选择再运行:

Client类设计代码:

importcom.haojin.fruit.controller.Menu;//导入项目工程中设计的Menu类/**
 * @author .29.
 * @create 2022-09-22 22:21
 */publicclassClient{publicstaticvoidmain(String[] args){Menu m =newMenu();//创建Menu类的对象boolean flag =true;while(flag){//显示主菜单int slt = m.showMainMenu();switch(slt){case1://查看列表
                    m.showFruitList();break;case2://添加
                    m.addFruit();break;case3://查看指定信息
                    m.showFruitInfo();break;case4://下架
                    m.delFruit();break;case5://退出
                    flag = m.exit();break;default:System.out.println("系统没有此项功能,请重新选择吧...");break;}}System.out.println("感谢使用");}}


4).DAO设计理念

DAO(Data Access Object)是一个为数据库或其他持久化机制

提供抽象接口

的对象,在不暴露底层持久化实现细节的前提下

提供各种数据访问操作

具体来说,就是设计一个

接口

,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且创建接口

实现类

①提供抽象接口FruitDAO

在接口中,我们需要准备抽象方法,对应了JDBC对数据库的不同操作:

  • 查询库存列表:getFruitList();
  • 新增库存:addFruit(Fruit fruit);
  • 修改库存:UpdateFruit(Fruit fruit);
  • 查询指定库存:getFruitByFname(String fname);
  • 删除库存:DelFruit(String fname);
importcom.haojin.fruit.pojo.Fruit;importjava.util.List;/**
 * @author .29.
 * @create 2022-09-23 17:38
 */publicinterfaceFruitDAO{//查询库存列表List<Fruit>getFruitList();//新增库存booleanaddFruit(Fruit fruit);//修改库存booleanUpdateFruit(Fruit fruit);//删除库存booleanDelFruit(String fname);//查询指定库存FruitgetFruitByFname(String fname);}

②接口实现类FruitDAOImpl

实现接口

FruitDAO

,重写接口中的抽象方法,重写方法中包含了底层持久化实现细节,这里,实现类方法都是单精度方法,方法的颗粒密度不能再被划分了。

上文设计的

Menu

类中的方法实现中,需要引用这里的实现类方法,使用当中JDBC连接,操作数据库的功能。

FruitDAOImpl实现类代码(不包含实现代码):

importcom.haojin.fruit.dao.FruitDAO;importcom.haojin.fruit.pojo.Fruit;importjava.sql.*;importjava.util.ArrayList;importjava.util.List;/**
 * @author .29.
 * @create 2022-09-23 17:56
 */publicclassFruitDAOImplimplementsFruitDAO{@OverridepublicList<Fruit>getFruitList(){returnnull;}@OverridepublicbooleanaddFruit(Fruit fruit)throwsSQLException{returnfalse;}@OverridepublicbooleanUpdateFruit(Fruit fruit){returnfalse;}@OverridepublicbooleanDelFruit(String fname){returnfalse;}@OverridepublicFruitgetFruitByFname(String fname){returnnull;}}

至此,水果库存系统的 结构 就设计完成啦,接下来就是功能代码的实现。

求关注

⚽ 作者🥇 .29. 🥇 的✔博客主页✔
您的

点赞

收藏

以及

关注

是对作者最大的鼓励喔 ~~

在这里插入图片描述

标签:

本文转载自: https://blog.csdn.net/ebb29bbe/article/details/127037585
版权归原作者 .29. 所有, 如有侵权,请联系我们删除。

“【JDBC实战】水果库存系统 [设计阶段]”的评论:

还没有评论