“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的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
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