“Java架构设计之商品口”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
显示层
显示层
第734行: 第734行:
  
 
===客户端===
 
===客户端===
 +
main包 中 Main类:
 +
 
====菜单输出功能showMenu()====
 
====菜单输出功能showMenu()====
 
  <nowiki>
 
  <nowiki>

2020年5月28日 (四) 08:57的版本

任务描述

1.创建商品操作的业务逻辑层

2. 对用户操作的数据访问层做必要改动

3. 编写表示层的代码


实训原理

Java2020-12-3.png

表示层

表示层又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是B/S信息系统中的Web浏览页面。作为Web浏览页面,表示层的主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到BLL系统中进行数据处理,处理后会将处理结果反馈到表示层中。换句话说,表示层就是实现用户界面功能,将用户的需求传达和反馈,并用BLL或者是Models进行调试,保证用户体验。

业务逻辑层

业务逻辑层BLL的功能是对具体问题进行逻辑判断与执行操作,接收到表现层UI的用户指令后,会连接数据访问层DAL,访问层在三层构架中位于表示层与数据层中间位置,同时也是表示层与数据层的桥梁,实现三层之间的数据连接和指令传达,可以对接收数据进行逻辑处理,实现数据的修改、获取、删除等功能,并将处理结果反馈到表示层UI中,实现软件功能。

数据访问层

数据访问层DAL是数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层BLL。在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软件开发人员会在该层中编写DataAccessCommon,保证数据访问层DAL数据处理功能。

数据访问层

GoodsDao接口

本接口改动不大,主要是find和findALL返回值变成了ArrayList<User>类型。

变动的原因是 现在软件分层了,数据库查询到的数据不宜直接在dao层打印了,通过arraylist传出去

package dao;

import java.util.ArrayList;

import entity.Goods;

public interface GoodsDao {
	  public int getNum();
	  public boolean add(Goods g);//增加商品
	  
	  public boolean delete(String id);//删除商品
	  
	  public ArrayList<Goods> findAll();//查询所有商品
	  
	  public ArrayList<Goods> find(String name);//查询某种商品是否存在
	  
	  public boolean modify(String id,float p);//修改商品
	  
	  public int hasGoods(String name);//查询某种商品是否存在,返回id号
}

创建GoodsDaoSQL实现类

本类改动不大,主要是queryUser( )返回值变成了ArrayList<User>类型。

变动的原因是 现在软件分层了,数据库查询到的数据不宜直接在dao层打印了,通过arraylist传出去

package dao;

import java.sql.*;
import java.util.ArrayList;

import entity.*;

public class GoodsDaoSQL implements GoodsDao{
	// JDBC 驱动名及数据库 URL
		
	    Connection conn;
	    
	    public GoodsDaoSQL(){
	    	 this.getConn();
	    }
	     /**
		   * 连接数据库
		   * @param 值为空
		   * @return 布尔值
		*/
		private boolean getConn() {     
	     
	    	//Connection conn = null;       
	        try {
	        	final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
	    		final String DB_URL = "jdbc:mysql://10.0.0.30:3306/cloud?characterEncoding=utf8";
	    		//	static final String DB_URL = "jdbc:mysql://localhost:3306/cloud?characterEncoding=utf8";
	    		
	    		// 数据库的用户名与密码,需要根据自己的设置
	    		final String USER = "root";
	    	    final String PASS = "000000";
	    	    
	            Class.forName(JDBC_DRIVER); //classLoader,加载对应驱动
	            this.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;
	   }
}

返回商品总数getNum()

		/*
		 * 功能:返回商品库的总数目
		 */
	  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;
	  }

增加操作add( )

  /*功能:增加商品
	   * 改动:返回值由void改为boolean ,只返回操作成功与否,不在函数内打印任何语句
	   */
	  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;
	        
	  }


删除操作delete()

  public boolean delete(String id) {//删除商品
		    Connection conn = this.conn;
	        int i = 0;
			String sql = "DELETE FROM goods WHERE id = ?"; 
			
	    	try {   		
	          
	    		PreparedStatement pstmt = conn.prepareStatement(sql);  
	    		pstmt.setInt(1, Integer.valueOf(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;
	  }
	  

查询所有操作findAll()

	
  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 name = rs.getString(2);
		               float price= rs.getFloat(3);
		               int num = rs.getInt(4);
		               Goods g = new Goods(name,price,num); 
		               garray.add(g);
		               //System.out.print(rs.getString(i) + "\t");	               
		         }           
	            
	        } catch (SQLException e) {
	        	System.out.println(e.getMessage());
	        }
	        return garray;
	  }

搜索操作find()

  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 gname = rs.getString(2);
		               float price= rs.getFloat(3);
		               int num = rs.getInt(4);
		               Goods g = new Goods(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;
	  }

查询是否存在操作hasGoods()

		public int hasGoods(String name) {//查询某一商品
			int id = 0;
			try { 
		    		ResultSet rs = null;   //建立一个空的结果集

		    		 //1.创建PreparedStatement 对象,让它与一条SQL模板绑定;
		    		String sql = "select id from goods where name = ?";
		    		PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);
		    		
		            //使用2. setXXX()系列方法为sql命令设置值
		    		pstmt.setString(1, name);//  
		            //3.执行查询 
		            rs = pstmt.executeQuery();//执行查询   
		                     
	                if(rs.next()){
		               id=rs.getInt("id");
		            }
	                pstmt.close();
		            
		    }catch (SQLException e) {//捕捉、处理异常
		             System.out.println(e.getMessage());	            
		    }
			return id;
		}

修改价格操作modify()

	  public boolean modify(String 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,Integer.valueOf(id));            
	             int i = pstmt.executeUpdate();
	             pstmt.close();
	             if(i!=0){ //如果影响行数非零,说明修改成功
	            	 return true;	            	 
		         }
	            
	             
	         } catch (SQLException e) {
	         	 System.out.println(e.getMessage());
	         }
	      return false;
	                 
	  }

在main方法编写测试代码

public static void main(String[] args) {
			// TODO Auto-generated method stub
			// TODO Auto-generated method stub
					GoodsDao s = new GoodsDaoSQL(); 			
					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("以下为商品详情信息:");
					s.findAll();
					
					//删除元素
					System.out.println("执行删除餐品操作...");
					String id =Integer.toString(s.hasGoods("山西刀削面"));
					System.out.println(s.delete(id));
					//查询所有商品
					System.out.println(s.findAll());
					
					
					System.out.println("修改兰州牛肉面的价格为12:");
					String id2 =Integer.toString(s.hasGoods("兰州牛肉面"));
					System.out.println(s.modify(id2, 15f));
					
					//根据商品名称查找商品
					String name="牛肉面";
					System.out.println(s.find(name));
					
		}

输出结果:

MySQL连接成功!
执行添加餐品操作...
true
Duplicate entry '兰州牛肉面' for key 'gname'
false
Duplicate entry '黄焖鸡米饭' for key 'gname'
false
共找到商品?件:4
以下为商品详情信息:
执行删除餐品操作...
true
[名称:兰州牛肉面; 价格:15.0; 数量:20;, 名称:黄焖鸡米饭; 价格:12.0; 数量:30;, 名称:老北京牛肉面; 价格:25.0; 数量:2;]
修改兰州牛肉面的价格为12:
true
[名称:兰州牛肉面; 价格:15.0; 数量:20;, 名称:老北京牛肉面; 价格:25.0; 数量:2;]


业务逻辑层

Java2020-12-1.png

创建服务类GoodsService

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) {
        }
}

添加商品服务addGoods()

	
	/**
	   * 商品上架,向数据仓库中添加商品
	   * @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() +"已存在");
	   } 
		
	}
	 	

删除商品服务delGoods()

/**
	   * 向数据仓库中删除商品
	   * @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());
	//}
	}

查看所有商品服务queryGoods( )

	/**
	 * 查询仓库中的商品
	 * * @param 值为空
	   * @return 值为空
	 */
	
	public void  queryGoods( ){
		
		ArrayList<Goods> goods = dbset.findAll();
		System.out.println("本店现有商品数:");
		for(Goods g :goods) {
			System.out.println(g);
		}
		System.out.println();;
			
		
	}

搜索商品服务queryGoods(String name)

/**
	 * 查询仓库中的商品
	 * * @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();;
	}


修改商品服务modifyGoods()


	/**
	   * 向数据仓库中修改商品的数量
	   * @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());
		//}
			
		    	
	}
	

在main方法中写测试代码

	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);
	}

完整代码

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);
	}
	
	
}


显示层

显示层 调用业务逻辑层的代码,完成查询

Java2020-12-4.png

客户端

main包 中 Main类:

菜单输出功能showMenu()

	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):");
	}

用户选择功能getChoice()

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("您的选择不正确");
			}
		   
	}

在main中编写测试代码

public static void main(String[] args) {
		// * 获取用户的输入数据
		Scanner sc = new Scanner(System.in);
		//start(sc);
		while(true) {
			showMenu() ;
			getChoice(sc);			  
		}
	   
	}

完整代码

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);			  
		}
	   
	}
}

管理端

管理端显示层功能:

菜单展示功能

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):");
	}
}

用户选择功能getChoice()

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("您的选择不正确");
			}
		   
	}

main方法

public static void main(String[] args) {
		// * 获取用户的输入数据
	    //Scanner sc = new Scanner(System.in);
	    //start(sc);
		while(true) {
			showMenu() ;
			getChoice(sc);
			  
		}
	   
	}

}

商品输入功能inputGoods()

 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;
		
	}

商品名称录入功能inputName()

/** * 输入商品名称输入 */ public static String inputName(){ System.out.println("请输入商品名称:"); String name = sc.next(); System.out.println("操作的商品编号为:"+name); return name; }

商品价格录入功能alterPrice()

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; }

完整代码

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);
			  
		}
	   
	}
}