查看“Java架构设计之商品口”的源代码
←
Java架构设计之商品口
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==任务描述== 1.创建商品操作的业务逻辑层 2. 对用户操作的数据访问层做必要改动 3. 编写表示层的代码 ==实训原理== [[文件:java2020-12-3.png|500px]] ===表示层=== 表示层又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是B/S信息系统中的Web浏览页面。作为Web浏览页面,表示层的主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到BLL系统中进行数据处理,处理后会将处理结果反馈到表示层中。换句话说,表示层就是实现用户界面功能,将用户的需求传达和反馈,并用BLL或者是Models进行调试,保证用户体验。 ===业务逻辑层=== 业务逻辑层BLL的功能是对具体问题进行逻辑判断与执行操作,接收到表现层UI的用户指令后,会连接数据访问层DAL,访问层在三层构架中位于表示层与数据层中间位置,同时也是表示层与数据层的桥梁,实现三层之间的数据连接和指令传达,可以对接收数据进行逻辑处理,实现数据的修改、获取、删除等功能,并将处理结果反馈到表示层UI中,实现软件功能。 ===数据访问层=== 数据访问层DAL是数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层BLL。在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软件开发人员会在该层中编写DataAccessCommon,保证数据访问层DAL数据处理功能。 ==任务准备== ===加载指定数据库的驱动程序=== (此步如果所在项目已做,可忽略) Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,解压后得到jar库文件,然后在对应的项目中导入该库文件。 你可以从群邮件里下载MySQL驱动 jar 包:mysql-connector-java-5.1.39-bin.jar ,对应于mysql5.7版本。 ===导入数据库驱动程序=== (此步如果所在项目已做,可忽略) 具体参见 [[Eclipse导入数据库驱动程序]] ===创建测试数据=== 接下来我们在 MySQL 中创建 cloud 数据库,并创建 goods 数据表,表结构如下: <nowiki>mysql> create database cloud; Query OK, 1 row affected (0.00 sec) mysql> use cloud; Database changed 数据表 goods: CREATE TABLE IF NOT EXISTS `goods` ( `id` INT unsigned AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, `price` FLOAT NOT NULL, `num` INT(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `gname` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; desc goods; +-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(100) | NO | UNI | NULL | | | price | float | NO | | NULL | | | num | int(11) | NO | | NULL | | +-------+------------------+------+-----+---------+----------------+ 4 rows in set (0.02 sec) </nowiki> ===建立数据连接类MyCon=== (此步如果所在项目已做,可忽略) <nowiki> package dao; import java.sql.*; public class MyCon { public static Connection conn = null; /** * 连接数据库 * @param 值为空 * @return Connection 建立的数据库连接 */ public static boolean getConn() { // JDBC 驱动名及数据库 URL final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; final String DB_URL = "jdbc:mysql://10.0.0.30:3306/cloud?characterEncoding=utf8"; final String USER = "root"; final String PASS = "000000"; try { Class.forName(JDBC_DRIVER); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS); System.out.println("MySQL连接成功!"); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); return false; } catch (SQLException e) { System.out.println(e.getMessage()); return false; } return true; } public static boolean disConn() { try { conn.close(); System.out.println("MySQL关闭成功!"); } catch (SQLException e) { System.out.println(e.getMessage()); return false; } return true; } public static void main(String[] args) { // TODO Auto-generated method stub getConn(); disConn(); } } </nowiki> 运行一下,看看能否连接数据库 ? ==数据访问层== ===GoodsDao接口=== <nowiki> package dao; import java.util.ArrayList; import entity.Goods; public interface GoodsDao { public int getNum(); public boolean add(Goods g);//增加商品 public boolean delete(int id);//删除商品 public ArrayList<Goods> findAll();//查询所有商品 public ArrayList<Goods> find(String name);//模糊查询,查询某关键词的商品是否存在 public boolean modify(int id,float p);//修改商品 public Integer [] hasGoods(String name);//精确查询,查询某种商品是否存在,返回id号和数量 public Integer[] hasGoods(int id);//查询某种商品是否存在,返回布尔值和数量 } </nowiki> ===创建GoodsDaoSQL实现类=== <nowiki> package dao; import java.sql.*; import java.util.*; import entity.*; public class GoodsDaoSQL implements GoodsDao{ Connection conn; public GoodsDaoSQL(){ conn = MyCon.conn;//建立数据连接 } public static void main(String[] args) { // TODO Auto-generated method stub // TODO Auto-generated method stub MyCon.getConn();//建立数据库连接 GoodsDao s = new GoodsDaoSQL(); } } </nowiki> ===返回商品总数getNum()=== <nowiki> /* * 功能:返回商品库的总数目 */ public int getNum() { int rowCount = 0; try { ResultSet rs = null; //建立一个空的结果集 //1.创建PreparedStatement 对象,让它与一条SQL模板绑定; String sql = "select count(*) record from goods"; PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql); //2.执行查询 rs = pstmt.executeQuery();//执行查询 if(rs.next()){ rowCount=rs.getInt("record"); } pstmt.close(); }catch (SQLException e) {//捕捉、处理异常 System.out.println(e.getMessage()); } return rowCount; }</nowiki> ===增加操作add( )=== <nowiki> public boolean add(Goods g) {//增加商品 try { Connection conn = this.conn; int i = 0; String sql = "insert into goods (name,price,num) values(?,?,?)"; PreparedStatement pstmt; pstmt = (PreparedStatement) conn.prepareStatement(sql); pstmt.setString(1, g.getName()); pstmt.setFloat(2, g.getPrice()); //pstmt.setInt(2, user.getAge()); pstmt.setDate pstmt.setInt(3, g.getNum()); i = pstmt.executeUpdate(); pstmt.close(); if(i!=0){ return true; //System.out.println(g.getName()+"插入成功!"); } } catch (SQLException e) { System.out.println(e.getMessage()); } return false; }</nowiki> ===按id号查询有无特定商品hasGoods(int id)=== <nowiki> public Integer[] hasGoods(int id){//按id查询某一商品 Integer [] info = new Integer[2]; info[0] =0;info[1]=0;//info[0]表示是否存在,info[1] 表示该商品的数目 try { ResultSet rs = null; //建立一个空的结果集 //1.创建PreparedStatement 对象,让它与一条SQL模板绑定; String sql = "select num from goods where id = ?"; PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql); pstmt.setInt(1, id); //2.执行查询 rs = pstmt.executeQuery();//执行查询 if(rs.next()) { info[0] = 1; info[1] = rs.getInt("num"); } pstmt.close(); }catch (SQLException e) {//捕捉、处理异常 System.out.println(e.getMessage()); } return info; }</nowiki> ===按商品全名查找有无特定商品hasGoods(String name)=== <nowiki> public Integer[] hasGoods(String name) {//查询某一商品 Integer [] info = new Integer[2]; info[0]=0;info[1]=0; try { ResultSet rs = null; //建立一个空的结果集 //1.创建PreparedStatement 对象,让它与一条SQL模板绑定; String sql = "select id,num from goods where name = ?"; PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql); //使用2. setXXX()系列方法为sql命令设置值 pstmt.setString(1, name);// //3.执行查询 rs = pstmt.executeQuery();//执行查询 if(rs.next()){ info[0]=rs.getInt("id"); info[1]=rs.getInt("num"); } pstmt.close(); }catch (SQLException e) {//捕捉、处理异常 System.out.println(e.getMessage()); } return info; }</nowiki> ===删除操作delete()=== <nowiki> public boolean delete(int id) {//删除商品 Connection conn = this.conn; int i = 0; String sql = "DELETE FROM goods WHERE id = ?"; try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); i = pstmt.executeUpdate(); pstmt.close(); if(i!=0){ return true; //System.out.println("商品"+id+"删除成功!"); }else { return false; //System.out.println("商品"+id+"删除失败!"); } }catch (SQLException e) { System.out.println(e.getMessage()); } return false; } </nowiki> ===查询所有操作findAll()=== <nowiki> public ArrayList<Goods> findAll() {//查询所有商品 ArrayList<Goods> garray = new ArrayList<>(); try { String sql = "select * from goods"; PreparedStatement pstmt = (PreparedStatement)conn.prepareStatement(sql); //3.执行查询 ResultSet rs = pstmt.executeQuery();//执行查询 int col = rs.getMetaData().getColumnCount();//获取字段数 while (rs.next()) { String id = Integer.toString(rs.getInt(1)); String gname = rs.getString(2); float price= rs.getFloat(3); int num = rs.getInt(4); Goods g = new Goods(id,gname,price,num); garray.add(g); //System.out.print(rs.getString(i) + "\t"); } } catch (SQLException e) { System.out.println(e.getMessage()); } return garray; }</nowiki> ===搜索操作find()=== <nowiki> public ArrayList<Goods> find(String name) {//查询某种商品是否存在 ArrayList<Goods> garray = new ArrayList<>(); try { ResultSet rs = null; //建立一个空的结果集 //1.创建PreparedStatement 对象,让它与一条SQL模板绑定; String sql = "select * from goods where name LIKE ?"; PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql); //使用2. setXXX()系列方法为sql命令设置值 pstmt.setString(1, "%"+name+"%");// //3.执行查询 rs = pstmt.executeQuery();//执行查询 int col = rs.getMetaData().getColumnCount();//获取字段数 while (rs.next()) { String id = Integer.toString(rs.getInt(1)); String gname = rs.getString(2); float price= rs.getFloat(3); int num = rs.getInt(4); Goods g = new Goods(id,gname,price,num); garray.add(g); //System.out.print(rs.getString(i) + "\t"); } pstmt.close(); }catch (SQLException e) {//捕捉、处理异常 System.out.println(e.getMessage()); } return garray; } </nowiki> ===修改价格操作modify()=== <nowiki> public boolean modify(int id,float p) { //修改商品 try { String sql = "UPDATE goods SET price=?" + " WHERE id=?"; PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql); pstmt.setFloat(1, p); pstmt.setInt(2,id); int i = pstmt.executeUpdate(); pstmt.close(); if(i!=0){ //如果影响行数非零,说明修改成功 return true; } } catch (SQLException e) { System.out.println(e.getMessage()); } return false; }</nowiki> ===在main方法编写测试代码=== <nowiki> public static void main(String[] args) { // TODO Auto-generated method stub // TODO Auto-generated method stub MyCon.getConn();//建立数据库连接 GoodsDao s = new GoodsDaoSQL(); Scanner sc = new Scanner(System.in); /*向商品库中添加商品 */ Goods g1= new Goods("1","山西刀削面",105.0f,30); Goods g2= new Noodles("2","兰州牛肉面",15.0f,20); Goods g3= new Rice("3","黄焖鸡米饭",12.0f,30,false); //添加元素 System.out.println("执行添加餐品操作..."); System.out.println("添加餐品结果:"+s.add(g1)); System.out.println("添加餐品结果:"+s.add(g2)); System.out.println("添加餐品结果:"+s.add(g3)); System.out.println("共找到商品?种:"+s.getNum()); System.out.println("以下为商品详情信息:"); System.out.println(s.findAll()); /*修改商品库中商品的价格 */ System.out.println("请问您想修改什么餐品?输入餐品全名"); String name = sc.next(); System.out.println("餐品修改后的价格为?"); float price= Float.valueOf(sc.next()); Integer[] info =s.hasGoods(name); System.out.println("该商品的id为:"+ info[0]+",数量为:"+info[1]); System.out.println("修改餐品结果:"+s.modify(info[0], price)); System.out.println(s.findAll()); /* 删除商品库中商品 */ System.out.println("执行删除餐品操作..."); System.out.println("请问您想删除什么餐品?输入餐品id"); int id = Integer.valueOf(sc.next()); Integer[] info2 = s.hasGoods(id); if( info2[0] == 1 ){ //如果被删除产品在库中存在 System.out.println("id号为"+id+"餐品现在在库中存在,商品数量为:"+info[1]); System.out.println("删除餐品结果:"+s.delete(id)); }else {System.out.println("id号为"+id+"餐品现在在库中不存在");} /* 查询所有商品 */ System.out.println(s.findAll()); /* 根据商品名称查找商品 */ System.out.println("请问您想查询什么餐品?输入餐品关键词:"); name = sc.next(); System.out.println("共找到以下商品:"); System.out.println(s.find(name)); sc.close(); MyCon.disConn();//建立数据库连接 } </nowiki> ==业务逻辑层== [[文件:java2020-12-1.png|500px]] ===创建服务类GoodsService=== <nowiki> package service; import java.util.ArrayList; import dao.*; import entity.*; //import exception.GoodsException; /** * 这个类处理与商品有关的业务逻辑 */ public class GoodsService { private GoodsDao dbset ; public GoodsService() { dbset = new GoodsDaoSQL(); } public static void main(String[] args) { } } </nowiki> ===添加商品服务addGoods()=== <nowiki> /** * 商品上架,向数据仓库中添加商品 * @param g 向仓库中添加的商品 * @return 值为空 */ public void addGoods(Goods g){ String name = g.getName(); int id = dbset.hasGoods(name);//查询有无该商品,返回商品id号 if(id == 0){ //如果没有该商品,再执行上架操作 if(dbset.add(g)==true) { System.out.println(" 商品 "+g.getName() +" 成功上架"); }else { System.out.println(" 商品 "+g.getName() +" 上架失败"); } }else { System.out.println(" 商品 "+g.getName() +"已存在"); } } </nowiki> ===删除商品服务delGoods()=== <nowiki>/** * 向数据仓库中删除商品 * @param g 向仓库中删除的商品 * @return 值为空 */ public void delGoods(String name) { //try{ System.out.println("现在开始向库中删除商品 "); int id = dbset.hasGoods(name);//查询有无该商品,返回商品id号 if(id!=0){//确定有该商品再执行删除操作 if(dbset.delete(Integer.toString(id))==true) { System.out.println("商品"+ name+" 下架成功!"); }else { System.out.println("商品"+ name+" 下架失败!"); } }else{ //throw new GoodsException("要删除的商品"+id+" 不存在哦!"); System.out.println("要删除的商品"+name+" 不存在"); } System.out.println(); //}catch(GoodsException e){ //System.out.println(e.toString()); //} }</nowiki> ===查看所有商品服务queryGoods( )=== <nowiki> /** * 查询仓库中的商品 * * @param 值为空 * @return 值为空 */ public void queryGoods( ){ ArrayList<Goods> goods = dbset.findAll(); System.out.println("本店现有商品数:"); for(Goods g :goods) { System.out.println(g); } System.out.println();; }</nowiki> ===搜索商品服务queryGoods(String name)=== <nowiki>/** * 查询仓库中的商品 * * @param 值为空 * @return 值为空 */ public void queryGoods(String name) { ArrayList<Goods> goods = dbset.find(name); System.out.println("查询到名称为"+name+"商品有:"); for(Goods g :goods) { System.out.println(g); } System.out.println();; }</nowiki> ===修改商品服务modifyGoods()=== <nowiki> /** * 向数据仓库中修改商品的数量 * @param g 仓库中待修改的商品 * @param p 商品修改后的价格 * @return 值为空 */ public void modifyGoods(String name,float p) { System.out.println("现在开始修改商品 "+name+ " 的价格"); //try{ int id = dbset.hasGoods(name); if(id==0){//如果查不到这个商品 //throw new GoodsException("要修改的商品"+g.getName()+" 不存在哦!"); System.out.println("要修改的商品"+name+" 不存在"); }else {//查到这个商品了,可以做进一步操作 dbset.modify(Integer.toString(id), p); System.out.println(name+" 的价格更改为 " + p+ " 元"); System.out.println(); } //}catch( GoodsException e){ //System.out.println(e.toString()); //} } </nowiki> ===在main方法中写测试代码=== <nowiki> public static void main(String[] args) { // TODO Auto-generated method stub GoodsService s = new GoodsService(); //GoodsDao s = new GoodsDaoSet(); //GoodsDao s = new GoodsDaoArrayList(); //GoodsDao s = new GoodsDaoLinkedList(); Goods g1= new Goods("1","山西刀削面",105.0f,30); Goods g2= new Noodles("2","兰州牛肉面",15.0f,20); Goods g3= new Rice("3","黄焖鸡米饭",12.0f,30,false); //商品上架 System.out.println("执行添加餐品操作..."); s.addGoods(g1); s.addGoods(g2); s.addGoods(g3); //System.out.println("共找到商品?件:"+s.getNum()); System.out.println("以下为商品详情信息:"); s.queryGoods(); //商品下架 System.out.println("执行删除餐品操作..."); s.delGoods("山西刀削面"); //查询所有商品 s.queryGoods(); System.out.println("修改兰州牛肉面的价格为15:"); s.modifyGoods("兰州牛肉面", 15f); //根据商品名称查找商品 String name="牛肉面"; s.queryGoods(name); }</nowiki> ===完整代码=== <nowiki> package service; import java.util.ArrayList; import dao.*; import entity.*; //import exception.GoodsException; /** * 这个类处理与商品有关的业务逻辑 */ public class GoodsService { private GoodsDao dbset ; public GoodsService() { dbset = new GoodsDaoSQL(); } /** * 商品上架,向数据仓库中添加商品 * @param g 向仓库中添加的商品 * @return 值为空 */ public void addGoods(Goods g){ String name = g.getName(); int id = dbset.hasGoods(name);//查询有无该商品,返回商品id号 if(id == 0){ //如果没有该商品,再执行上架操作 if(dbset.add(g)==true) { System.out.println(" 商品 "+g.getName() +" 成功上架"); }else { System.out.println(" 商品 "+g.getName() +" 上架失败"); } }else { System.out.println(" 商品 "+g.getName() +"已存在"); } } /** * 向数据仓库中删除商品 * @param g 向仓库中删除的商品 * @return 值为空 */ public void delGoods(String name) { //try{ System.out.println("现在开始向库中删除商品 "); int id = dbset.hasGoods(name);//查询有无该商品,返回商品id号 if(id!=0){//确定有该商品再执行删除操作 if(dbset.delete(Integer.toString(id))==true) { System.out.println("商品"+ name+" 下架成功!"); }else { System.out.println("商品"+ name+" 下架失败!"); } }else{ //throw new GoodsException("要删除的商品"+id+" 不存在哦!"); System.out.println("要删除的商品"+name+" 不存在"); } System.out.println(); //}catch(GoodsException e){ //System.out.println(e.toString()); //} } /** * 查询仓库中的商品 * * @param 值为空 * @return 值为空 */ public void queryGoods( ){ ArrayList<Goods> goods = dbset.findAll(); System.out.println("本店现有商品数:"); for(Goods g :goods) { System.out.println(g); } System.out.println();; } /** * 查询仓库中的商品 * * @param 值为空 * @return 值为空 */ public void queryGoods(String name) { ArrayList<Goods> goods = dbset.find(name); System.out.println("查询到名称为"+name+"商品有:"); for(Goods g :goods) { System.out.println(g); } System.out.println();; } /** * 向数据仓库中修改商品的数量 * @param g 仓库中待修改的商品 * @param p 商品修改后的价格 * @return 值为空 */ public void modifyGoods(String name,float p) { System.out.println("现在开始修改商品 "+name+ " 的价格"); //try{ int id = dbset.hasGoods(name); if(id==0){//如果查不到这个商品 //throw new GoodsException("要修改的商品"+g.getName()+" 不存在哦!"); System.out.println("要修改的商品"+name+" 不存在"); }else {//查到这个商品了,可以做进一步操作 dbset.modify(Integer.toString(id), p); System.out.println(name+" 的价格更改为 " + p+ " 元"); System.out.println(); } //}catch( GoodsException e){ //System.out.println(e.toString()); //} } public static void main(String[] args) { // TODO Auto-generated method stub GoodsService s = new GoodsService(); //GoodsDao s = new GoodsDaoSet(); //GoodsDao s = new GoodsDaoArrayList(); //GoodsDao s = new GoodsDaoLinkedList(); Goods g1= new Goods("1","山西刀削面",105.0f,30); Goods g2= new Noodles("2","兰州牛肉面",15.0f,20); Goods g3= new Rice("3","黄焖鸡米饭",12.0f,30,false); //商品上架 System.out.println("执行添加餐品操作..."); s.addGoods(g1); s.addGoods(g2); s.addGoods(g3); //System.out.println("共找到商品?件:"+s.getNum()); System.out.println("以下为商品详情信息:"); s.queryGoods(); //商品下架 System.out.println("执行删除餐品操作..."); s.delGoods("山西刀削面"); //查询所有商品 s.queryGoods(); System.out.println("修改兰州牛肉面的价格为15:"); s.modifyGoods("兰州牛肉面", 15f); //根据商品名称查找商品 String name="牛肉面"; s.queryGoods(name); } } </nowiki> ==显示层== 显示层 调用业务逻辑层的代码,完成查询 [[文件:java2020-12-4.png]] ===客户端=== main包 中 Main类: ====菜单输出功能showMenu()==== <nowiki> public static void showMenu() { // 编写主菜单输出语句 System.out.println("**********面馆管理系统**********\r\n" + "1.查询所有商品\r\n" + "2.根据商品名称查找商品\r\n" + "3.购买商品\r\n" + "4.取消购买\r\n" + "5.查询购物车\r\n" + "6.退出系统\r\n" + "*******************************"); System.out.println("请选择(1-6):"); }</nowiki> ====用户选择功能getChoice()==== <nowiki> public static void getChoice(Scanner sc) { //获取用户对于菜单的选择 String value = sc.next(); int choise = Integer.valueOf(value); GoodsService gs = new GoodsService(); switch(choise) { case 1: //处理查询所有商品的业务 System.out.println("您选择了:查询所有商品的业务"); gs.queryGoods();//查询所有商品 break; case 2: //处理按商品编号查询 System.out.println("您选择了: 按商品名称查询的业务"); System.out.println("请输入关键词:"); String gname = sc.next(); gs.queryGoods(gname); break; case 3: //购买商品,将商品加入到用户的购物车中 System.out.println("您选择了:列出购买商品的业务"); //暂不开放 break; case 4: //删除商品,从购物车中删除商品信息 System.out.println("您选择了:处理删除商品的业务"); //暂不开放 break; case 5: //显示某个用户购物车中所有的商品 System.out.println("您选择了:显示所有商品的业务"); //暂不开放 break; case 6: //退出当前应用程序 System.out.println("您选择了:退出当前应用程序"); sc.close(); System.exit(0); break; default: System.out.println("您的选择不正确"); } }</nowiki> ====在main中编写测试代码==== <nowiki> public static void main(String[] args) { // * 获取用户的输入数据 Scanner sc = new Scanner(System.in); //start(sc); while(true) { showMenu() ; getChoice(sc); } }</nowiki> ====完整代码==== <nowiki> package main; import java.util.Scanner; import service.GoodsService; public class Main { public static void showMenu() { // 编写主菜单输出语句 System.out.println("**********面馆管理系统**********\r\n" + "1.查询所有商品\r\n" + "2.根据商品名称查找商品\r\n" + "3.购买商品\r\n" + "4.取消购买\r\n" + "5.查询购物车\r\n" + "6.退出系统\r\n" + "*******************************"); System.out.println("请选择(1-6):"); } public static void getChoice(Scanner sc) { //获取用户对于菜单的选择 String value = sc.next(); int choise = Integer.valueOf(value); GoodsService gs = new GoodsService(); switch(choise) { case 1: //处理查询所有商品的业务 System.out.println("您选择了:查询所有商品的业务"); gs.queryGoods();//查询所有商品 break; case 2: //处理按商品编号查询 System.out.println("您选择了: 按商品名称查询的业务"); System.out.println("请输入关键词:"); String gname = sc.next(); gs.queryGoods(gname); break; case 3: //购买商品,将商品加入到用户的购物车中 System.out.println("您选择了:列出购买商品的业务"); //暂不开放 break; case 4: //删除商品,从购物车中删除商品信息 System.out.println("您选择了:处理删除商品的业务"); //暂不开放 break; case 5: //显示某个用户购物车中所有的商品 System.out.println("您选择了:显示所有商品的业务"); //暂不开放 break; case 6: //退出当前应用程序 System.out.println("您选择了:退出当前应用程序"); sc.close(); System.exit(0); break; default: System.out.println("您的选择不正确"); } } public static void main(String[] args) { // * 获取用户的输入数据 Scanner sc = new Scanner(System.in); //start(sc); while(true) { showMenu() ; getChoice(sc); } } }</nowiki> ===管理端=== 管理端显示层功能: ====菜单展示功能==== <nowiki>package main; import java.util.Scanner; import entity.Goods; import service.GoodsService; public class Main { static Scanner sc = new Scanner(System.in); public static void showMenu() { // 编写主菜单输出语句 System.out.println("**********面馆管理系统**********\r\n" + "1.商品上架\r\n" + "2.商品下架\r\n" + "3.列出所有商品\r\n" + "4.查询商品\r\n" + "5.更改商品信息\r\n" + "6.退出系统\r\n" + "*******************************"); System.out.println("请选择(1-6):"); } }</nowiki> ====用户选择功能getChoice()==== <nowiki>public static void getChoice(Scanner sc) { //获取用户对于菜单的选择 String value = sc.next(); int choise = Integer.valueOf(value);//将字符串转换成整型 GoodsService gs = new GoodsService(); switch(choise) { case 1: //处理查询所有商品的业务 System.out.println("您选择了:处理商品上架的业务"); Goods g = inputGoods(sc); gs.addGoods(g); break; case 2: //处理商品下架的业务 System.out.println("您选择了: 处理商品下架的业务"); String gname = inputName(); gs.delGoods(gname); break; case 3: //列出所有商品的业务 System.out.println("您选择了:列出所有商品的业务"); gs.queryGoods(); break; case 4: //按名称查询商品 System.out.println("您选择了:处理查询商品的业务"); String gname2 = inputName(); gs.queryGoods(gname2); break; case 5: //更改商品信息的业务 System.out.println("您选择了:更改商品信息的业务"); String [] m = alterPrice();//输入更改的商品和价格 gs.modifyGoods(m[0],Float.valueOf(m[1])); break; case 6: //退出当前应用程序 System.out.println("您选择了:退出当前应用程序"); sc.close(); System.exit(0); break; default: System.out.println("您的选择不正确"); } }</nowiki> ====main方法==== <nowiki>public static void main(String[] args) { // * 获取用户的输入数据 //Scanner sc = new Scanner(System.in); //start(sc); while(true) { showMenu() ; getChoice(sc); } }</nowiki> } ====商品输入功能inputGoods()==== <nowiki>public static Goods inputGoods(Scanner sc){ Goods g= new Goods(); System.out.print("请输入商品名称:"); String name =sc.next(); g.setName(name); System.out.print("请输入商品数量:"); String number =sc.next(); int n= Integer.parseInt(number); g.setNum(n); System.out.println("请输入商品价格:"); String price =sc.next(); Float p = Float.parseFloat(price); g.setPrice(p); //System.out.println("商品信息录入完毕!\r\n"); System.out.println("商品信息为:"+g.toString()); return g; }</nowiki> ====商品名称录入功能inputName()==== <nowiki>/** * 输入商品名称输入 */ public static String inputName(){ System.out.println("请输入商品名称:"); String name = sc.next(); System.out.println("操作的商品编号为:"+name); return name; }</nowiki> ====商品价格录入功能alterPrice()==== <nowiki>public static String[] alterPrice(){ String [] m = new String[2]; System.out.println("请输入商品名称:"); m[0]= sc.next(); System.out.println("请输入商品价格:"); m[1] =sc.next(); return m; }</nowiki> ====完整代码==== <nowiki> package main; import java.util.Scanner; import entity.Goods; import service.GoodsService; public class Main { static Scanner sc = new Scanner(System.in); public static void start(Scanner sc){ System.out.println("****************************"); System.out.println("*****欢迎登录商院面馆平台管理端****"); System.out.println("****************************"); System.out.println("账号:"); String uname = sc.nextLine(); System.out.println("密码:"); String pwd = sc.nextLine(); System.out.println("用户名为:"+uname+",密码为:"+pwd); } public static void showMenu() { // 编写主菜单输出语句 System.out.println("**********面馆管理系统**********\r\n" + "1.商品上架\r\n" + "2.商品下架\r\n" + "3.列出所有商品\r\n" + "4.查询商品\r\n" + "5.更改商品信息\r\n" + "6.退出系统\r\n" + "*******************************"); System.out.println("请选择(1-6):"); } public static void getChoice(Scanner sc) { //获取用户对于菜单的选择 String value = sc.next(); int choise = Integer.valueOf(value);//将字符串转换成整型 GoodsService gs = new GoodsService(); switch(choise) { case 1: //处理查询所有商品的业务 System.out.println("您选择了:处理商品上架的业务"); Goods g = inputGoods(sc); gs.addGoods(g); break; case 2: //处理商品下架的业务 System.out.println("您选择了: 处理商品下架的业务"); String gname = inputName(); gs.delGoods(gname); break; case 3: //列出所有商品的业务 System.out.println("您选择了:列出所有商品的业务"); gs.queryGoods(); break; case 4: //按名称查询商品 System.out.println("您选择了:处理查询商品的业务"); String gname2 = inputName(); gs.queryGoods(gname2); break; case 5: //更改商品信息的业务 System.out.println("您选择了:更改商品信息的业务"); String [] m = alterPrice();//输入更改的商品和价格 gs.modifyGoods(m[0],Float.valueOf(m[1])); break; case 6: //退出当前应用程序 System.out.println("您选择了:退出当前应用程序"); sc.close(); System.exit(0); break; default: System.out.println("您的选择不正确"); } } public static Goods inputGoods(Scanner sc){ Goods g= new Goods(); System.out.print("请输入商品名称:"); String name =sc.next(); g.setName(name); System.out.print("请输入商品数量:"); String number =sc.next(); int n= Integer.parseInt(number); g.setNum(n); System.out.println("请输入商品价格:"); String price =sc.next(); Float p = Float.parseFloat(price); g.setPrice(p); //System.out.println("商品信息录入完毕!\r\n"); System.out.println("商品信息为:"+g.toString()); return g; } /** * 输入商品编号的页面 */ public static String inputName(){ System.out.println("请输入商品名称:"); String name = sc.next(); System.out.println("操作的商品编号为:"+name); return name; } public static String[] alterPrice(){ String [] m = new String[2]; System.out.println("请输入商品名称:"); m[0]= sc.next(); System.out.println("请输入商品价格:"); m[1] =sc.next(); return m; } public static void main(String[] args) { // * 获取用户的输入数据 //Scanner sc = new Scanner(System.in); //start(sc); while(true) { showMenu() ; getChoice(sc); } } }</nowiki>
返回至
Java架构设计之商品口
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息