一、根据前面的需求,先将商品类、销售类、销售员类三个类建好:
1、goods类:
package lyons.entity;
/**
* goods 商品实体类
* @author lyons(zhanglei)
*/
public final class Goods
{
//数据库Goods表主鍵
private int gid;
private String gname;
private double gprice;
private int gnum;
/**
* 添加商品信息
* @param gname,gprice,gum
*/
public Goods(String gname,double gprice,int gum)
{
this.gname = gname;
this.gprice = gprice;
this.gnum = gum;
}
/**
* 展示所有商品
* @param gid,gname,gprice,gum
*/
public Goods(int gid,String gname,double gprice,int gum)
{
this.gid = gid;
this.gname = gname;
this.gprice = gprice;
this.gnum = gum;
}
/**
* 根据编号更改商品信息
* @param gid,gum
*/
public Goods(int gid,int gnum)
{
this.gid = gid;
this.gnum = gnum;
}
/**
* 根据编号更改商品信息
* @param gid,gprice
*/
public Goods(int gid,double gprice)
{
this.gid = gid;
this.gprice = gprice;
}
/**
* 根据编号更改商品信息
* @param gid,gname
*/
public Goods(int gid,String gname)
{
this.gid = gid;
this.gname = gname;
}
//共有-get、set-方法。
public int getGid()
{
return gid;
}
public void setGid(int gid)
{
this.gid = gid;
}
public String getGname()
{
return gname;
}
public void setGname(String gname)
{
this.gname = gname;
}
public double getGprice()
{
return gprice;
}
public void setGprice(double gprice)
{
this.gprice = gprice;
}
public int getGnum()
{
return gnum;
}
public void setGnum(int gnum)
{
this.gnum = gnum;
}
}
2、 gsales类:
package lyons.entity;
/**
* Gsales g购物结算实体类
* @author lyons(zhanglei)
*/
public final class Gsales
{
private int gId;
private int sId;
private int sNum;
private String gName;
private double gPrice;
private int gNum;
private int allSnum; //单种商品销量总和
/**
* 购物结算
* @param gId,sId,sNum
*/
public Gsales(int gId,int sId, int sNum)
{
this.gId = gId;
this.sId = sId;
this.sNum = sNum;
}
/**
* 展现商品列表
* @param gName,gPrice,gNum,allSnum
*/
public Gsales(String gName,double gPrice,int gNum,int allSnum)
{
this.gName = gName;
this.gPrice = gPrice;
this.gNum = gNum;
this.allSnum = allSnum;
}
//共有set、get
public int getGId()
{
return gId;
}
public void setGId(int id)
{
gId = id;
}
public int getSId()
{
return sId;
}
public void setSId(int id)
{
sId = id;
}
public int getSNum()
{
return sNum;
}
public void setSNum(int num)
{
sNum = num;
}
public String getGName()
{
return gName;
}
public void setGName(String name)
{
gName = name;
}
public double getGPrice()
{
return gPrice;
}
public void setGPrice(double price)
{
gPrice = price;
}
public int getGNum()
{
return gNum;
}
public void setGNum(int num)
{
gNum = num;
}
public int getAllSnum()
{
return allSnum;
}
public void setAllSnum(int allSnum)
{
this.allSnum = allSnum;
}
}
3、salesman类:
package lyons.entity;
/**
* SalesMan 售货员实体类
* @author lyons(zhanglei)
*/
public final class SalesMan
{
private int sId;
private String sName;
private String sPassWord;
/**
* 验证用户登陆
* @param sId,spassWord
*/
public SalesMan(int sId,String spassWord)
{
this.sId = sId;
this.sPassWord = spassWord;
}
/**
* 查询用户、更改用户密码
* @param sId,sName,sPassWord
*/
public SalesMan(int sId,String sName,String sPassWord)
{
this.sId = sId;
this.sName = sName;
this.sPassWord = sPassWord;
}
/**
* 添加用户
* @param NsNameame,sPassWord
*/
public SalesMan(String NsNameame, String sPassWord)
{
this.sName = NsNameame;
this.sPassWord = sPassWord;
}
//共有get.set方法
public int getSId()
{
return sId;
}
public void setSId(int id)
{
sId = id;
}
public String getSName()
{
return sName;
}
public void setSName(String name)
{
sName = name;
}
public String getSPassWord()
{
return sPassWord;
}
public void setSPassWord(String passWord)
{
sPassWord = passWord;
}
}
这一步没什么难度,直接把每一个属性都设置一下,然后设置为私有,注意属性的数据类型,这个很重要,方便后期管理类对其进行操作。
二、这个是整个程序比较难得地方,先建立goodspage属性管理类,gsalespage属性管理类,salesmanpage属性类,mainpage属性管理类,再在mainpage属性管理类里把goodspage属性管理类,gsalespage属性类,salesmanpage属性管理类先new出来,然后,每个属性管理类实现各自的方法,只需要在mainpage属性管理类中调用各个属性管理类的方法就可以了。
1、 goodspage:
首先明确goodspage属性管理类的功能
功能:
1、添加商品界面
2、更改商品界面
3、删除商品界面
4、查询商品界面
5、展示所有商品界面
7、可以返回上一个页面
明确功能后写代码就有了思路和目标。
package lyons.page;
import java.util.ArrayList;
import lyons.dao.GoodsDao;
import lyons.entity.Goods;
import lyons.tools.QueryPrint;
import lyons.tools.ScannerChoice;
/**
* 操作商品界面
* @author lyons(zhanglei)
*/
public final class GoodsPage extends ScannerChoice
{
/**
* 1.添加商品界面
*/
public static void addGoodsPage()
{
System.out.println("\t正在执行添加商品操作\n");
System.out.println("\n請輸入添加商品-名称");
String goodsName = ScannerInfoString();
System.out.println("\n請輸入添加商品-价格");
double goodsPrice = ScannerInfo();
System.out.println("\n請輸入添加商品-数量");
int goodsNumber = ScannerNum();
Goods goods = new Goods(goodsName,goodsPrice,goodsNumber);
boolean bool = new GoodsDao().addGoods(goods);
if (bool)
{
System.out.println("\n\t!您已成功添加商品到数据库!");
}else
{
System.out.println("添加商品失败");
}
changedInfoNext("addGoodsPage");//选择下一步
}
/**
* 2.更改商品界面
*/
public static void upateGoodsPage()
{
System.out.println("\t正在执行 更改商品 操作\n");
System.out.println("请输入想要更改的商品名字");
//调用查找商品函数,显示将要更改的商品信息
int gid = QueryPrint.query("upateGoodsPage"); //return the goods gid
System.out.println("\n--------请选择您要更改的内容\n");
System.out.println("\t1.更改商品-名称");
System.out.println("\t2.更改商品-价格");
System.out.println("\t3.更改商品-数量");
System.out.println("\n请输入选项,或者按0返回上一级菜单.");
do
{
String choice = ScannerInfoString();
String regex = "[0-3]";
if (choice.matches(regex))
{
int info = Integer.parseInt(choice);
switch (info)
{
case 0:
MainPage.MaintenancePage();
break;
case 1:
System.out.println("请输入商品-新名称");
String gname = ScannerInfoString();
Goods goodsName = new Goods(gid,gname);
boolean boolName = new GoodsDao().updateGoods(1, goodsName);
if (boolName)
{
System.out.println("\n\t!!成功更新商品名至数据库!!\n");
}else
{
System.err.println("\n\t!!更新商品名失敗!!");
}
changedInfoNext("upateGoodsPage");
break;
case 2:
System.out.println("请输入商品-新价格 ");
double gprice = ScannerInfo();
Goods goodsPrice = new Goods(gid,gprice);
boolean boolPrice = new GoodsDao().updateGoods(2,goodsPrice);
if (boolPrice)
{
System.out.println("\n\t!!成功更新商品价格至数据库!!\n");
}else
{
System.err.println