“Java MVC之 Model层”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
管理端
Model层的编写
第7行: 第7行:
 
===客户端===
 
===客户端===
 
===管理端===
 
===管理端===
 +
<nowiki>package main;
 +
 +
 +
import java.text.MessageFormat;
 +
import java.util.ArrayList;
 +
import java.util.Scanner;
 +
import java.util.Set;
 +
 +
import entity.*;
 +
 +
import exception.GoodsException;
 +
import exception.UserException;
 +
import service.*;
 +
 +
 +
 +
/*本类对应实训: MVC之Model层 */
 +
public class MainClass {
 +
 +
 +
 +
public static void main(String[] args) {
 +
 +
        /*管理员登陆
 +
        * 
 +
        */
 +
        //如果输入正确就往下进行,否则就提示用户再次输入
 +
        UserShow us= new UserShow();
 +
        while(true){
 +
       
 +
        ArrayList<String> uinfo = us.start();
 +
        UserService admin = new UserService();
 +
       
 +
        //uinfo.get(0)和uinfo.get(1)分别代表用户名和密码
 +
        //验证用户名和密码是否正确
 +
        boolean success =admin.login(uinfo.get(0),uinfo.get(1));
 +
        if(success)
 +
        break;
 +
       
 +
        }
 +
       
 +
 +
GoodsShow gs = new GoodsShow();//视图层对象
 +
GoodsService bs = new GoodsService();//业务逻辑层对象
 +
        String id=null;//商品编号
 +
       
 +
while(true) {
 +
//显示菜单
 +
us.showMenu();
 +
 +
//获取用户的选择(应用不输入退出应用的编号则始终显示菜单)
 +
         
 +
int choise = us.getChoise();
 +
 +
switch(choise) {
 +
 +
case 1: //商品上架
 +
gs.showTags();//调用视图层,展示所有标签
 +
Tag t= gs.getTag();//调用视图层,为该商品选择一种标签
 +
Goods g= gs.inputGoods(t);//调用视图层,手工录入商品信息
 +
bs.addGoods(g);//调用业务逻辑层,添加商品到数据库
 +
//System.out.println("商品成功上架!\r\n");
 +
    break;
 +
 +
case 2: //商品下架
 +
id = gs.inputId();//调用视图层,输入待下架的商品号
 +
    bs.delGoods(id);//调用业务逻辑层、进行实际下架
 +
    //System.out.println("商品成功下架!\r\n");
 +
 +
    break;
 +
case 3: //查询图书
 +
  //调用业务逻辑层、进行实际查询的代码
 +
    ArrayList<Goods> binfo= bs.queryGoods();    
 +
        gs.showGoods(binfo);//调用视图层,将商品进行展示
 +
    //System.out.println("商品成功查询!\r\n");
 +
    break;
 +
case 4: //根据商品编号查询图书
 +
    id = gs.inputId();//调用视图层,输入商品编号
 +
    Goods g4= bs.queryGoods(id);
 +
    //调用业务逻辑层、进行实际查询的代码
 +
    ArrayList<Goods> cinfo=new ArrayList<>();
 +
    cinfo.add(g4);
 +
    gs.showGoods(cinfo);
 +
  // System.out.println("商品成功查询!\r\n");
 +
   
 +
    break;
 +
case 5://修改图书数量
 +
    ArrayList<String> ginfo = gs.inputNum();
 +
    String id5 =ginfo.get(0);
 +
    int num = Integer.parseInt(ginfo.get(1));
 +
    bs.modifyGoods(id5,num);
 +
    //调用业务逻辑层、进行实际修改商品数量的代码
 +
    //System.out.println("商品数量成功修改!\r\n");
 +
    break;
 +
case 6: //退出当前应用程序
 +
System.out.println(MessageFormat.format("您选择了{0}", "退出当前应用程序"));
 +
System.exit(0);
 +
break;
 +
default:
 +
continue;
 +
}
 +
}
 +
 +
     
 +
 +
}
 +
 +
 +
}
 +
 +
 +
 +
</nowiki>
 +
 
项目源文件请见:
 
项目源文件请见:
  
 
   http://cloud.sict.edu.cn:80/link/CED3A93616F3973EBBBBCC4427DE32B1
 
   http://cloud.sict.edu.cn:80/link/CED3A93616F3973EBBBBCC4427DE32B1

2018年5月21日 (一) 00:53的版本

Model层的作用

  • M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

Java8-1.png

Model层的编写

客户端

管理端

package main;


import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Set;

import entity.*;

import exception.GoodsException;
import exception.UserException;
import service.*;



/*本类对应实训: MVC之Model层 */
public class MainClass {
	

	
	public static void main(String[] args) {
				
		        /*管理员登陆
		         *  	
		         */
		        //如果输入正确就往下进行,否则就提示用户再次输入
		        UserShow us= new UserShow();
		        while(true){
		        	
		        	ArrayList<String> uinfo = us.start();
		        	UserService admin = new UserService();
		        	
		        	//uinfo.get(0)和uinfo.get(1)分别代表用户名和密码
		        	//验证用户名和密码是否正确
		        	boolean success =admin.login(uinfo.get(0),uinfo.get(1));
		        	if(success)
		        	break;
		        	
		        }
		        

				GoodsShow gs = new GoodsShow();//视图层对象
				GoodsService bs = new GoodsService();//业务逻辑层对象
		        String id=null;//商品编号
		        
				while(true) {
					//显示菜单
					us.showMenu();
					
					//获取用户的选择(应用不输入退出应用的编号则始终显示菜单)
		          
					int choise = us.getChoise();
					
					switch(choise) {
					
						case 1:	//商品上架
							gs.showTags();//调用视图层,展示所有标签
							Tag t= gs.getTag();//调用视图层,为该商品选择一种标签
							Goods g= gs.inputGoods(t);//调用视图层,手工录入商品信息
							bs.addGoods(g);//调用业务逻辑层,添加商品到数据库
							//System.out.println("商品成功上架!\r\n");
						    break;							
							
						case 2:	//商品下架
							id = gs.inputId();//调用视图层,输入待下架的商品号
						    bs.delGoods(id);//调用业务逻辑层、进行实际下架
						    //System.out.println("商品成功下架!\r\n");
							
						    break;
					case 3:	//查询图书
						   //调用业务逻辑层、进行实际查询的代码
						    ArrayList<Goods> binfo= bs.queryGoods();						    
					        gs.showGoods(binfo);//调用视图层,将商品进行展示
						    //System.out.println("商品成功查询!\r\n");
						    break;
					case 4:	//根据商品编号查询图书
						    id = gs.inputId();//调用视图层,输入商品编号
						    Goods g4= bs.queryGoods(id);
						    //调用业务逻辑层、进行实际查询的代码
						    ArrayList<Goods> cinfo=new ArrayList<>();
						    cinfo.add(g4);
						    gs.showGoods(cinfo);
						   // System.out.println("商品成功查询!\r\n");
						    
						    break;
					case 5://修改图书数量
						    ArrayList<String> ginfo = gs.inputNum();
						    String id5 =ginfo.get(0);
						    int num = Integer.parseInt(ginfo.get(1));
						    bs.modifyGoods(id5,num);
						    //调用业务逻辑层、进行实际修改商品数量的代码
						    //System.out.println("商品数量成功修改!\r\n");
						    break;					
					case 6:	//退出当前应用程序
							System.out.println(MessageFormat.format("您选择了{0}", "退出当前应用程序"));
							System.exit(0);
							break;
					default:
							continue;
					}
				}
			
       
		
	}
	

}

	


项目源文件请见:

 http://cloud.sict.edu.cn:80/link/CED3A93616F3973EBBBBCC4427DE32B1