“商苑面馆:Java 网页版之 Dao层”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“==Model层的作用== *M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中…”)
 
(以“代码与命令行版的Dao层基本一致: *商苑面馆:Java命令行版之 Dao层(MySQL实现)”替换内容)
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
==Model层的作用==
+
代码与命令行版的Dao层基本一致:
*M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
 
  
[[文件:Java8-1.png]]
+
*[[商苑面馆:Java命令行版之 Dao层(MySQL实现)]]
===客户端功能===
 
[[文件:Java2-36.png]]
 
 
 
 
 
==客户端Model层的编写==
 
===新建类UserService===
 
新建包service,在其中新建此类。
 
 
 
  <nowiki>package service;
 
 
 
import dao.*;
 
import entity.*;
 
//import exception.UserException;
 
public class UserService {
 
 
/**
 
* 用户集类(用于存储用户
 
*/
 
private UserDao userset = null;
 
 
 
public UserService() {
 
userset = new UserDaoArray();
 
}
 
</nowiki>
 
 
===添加用户功能:addUser===
 
 
 
<nowiki>/**
 
* 用于向用户集添加用户
 
*/
 
public void addUser(User user){
 
 
userset.addUser(user);
 
        System.out.println("用户 "+user.getname() +" 注册成功");       
 
System.out.println();
 
} </nowiki>
 
===用户登陆验证功能:login()===
 
<nowiki>/**
 
* 登录验证,判断用户名与密码是否一致
 
*
 
* @param uid 用户输入的登录账号
 
* @param pwd 用户输入的登录密码
 
* @return 登录信息有效:返回用户对象,否则返回NULL
 
*/
 
public boolean login(String name, String pwd) {
 
//用户名为空,密码为空
 
//try{
 
if(userset.search(name)==null){
 
//throw new UserException("用户 "+name+":该用户不存在");
 
System.out.println("用户 "+name+":该用户不存在");
 
return false;
 
}else if(!userset.verify(name, pwd)){
 
//throw new UserException("用户 "+name+":用户名或密码错误");
 
System.out.println("用户 "+name+":用户名或密码错误");
 
return false;
 
}
 
System.out.println("用户 "+name+" 登陆成功!");
 
//}catch(UserException e){
 
//System.out.println(e.toString());
 
//return false;
 
//}
 
return true;
 
}</nowiki>
 
 
 
===在main方法中编写测试代码===
 
<nowiki>public static void main(String[] args) {
 
UserService us = new UserService();
 
User u1 =  new User("王建","000000");
 
us.addUser(u1);;
 
us.login("李建", "111111");
 
us.login("王建", "111111");
 
us.login("王建", "000000");
 
}</nowiki>
 
 
 
===与View层、Dao层联调联试===
 
在View层UserShow的start()方法中加入如下代码,调用UserService.
 
 
 
这样就是实现了View 层 调用 Model层 ,Model层又调用 Dao层, MVC三层架构基本建立成功!
 
 
 
[[文件:java7-36.png|700px]]
 
 
 
然后鼠标右击UserShow类,RUN AS -> JAVA APPLICATION :
 
 
 
[[文件:java7-37.png|700px]]
 
 
 
==完整代码==
 
<nowiki>package service;
 
 
 
import dao.*;
 
import entity.*;
 
//import exception.UserException;
 
public class UserService {
 
 
/**
 
* 用户集类(用于存储用户
 
*/
 
private UserDao userset = null;
 
 
 
public UserService() {
 
userset = new UserDaoArray();
 
}
 
 
/**
 
* 用于向用户集添加用户
 
*/
 
public void addUser(User user){
 
 
userset.addUser(user);
 
        System.out.println("用户 "+user.getname() +" 注册成功");       
 
System.out.println();
 
}
 
 
/**
 
* 登录验证,判断用户名与密码是否一致
 
*
 
* @param uid 用户输入的登录账号
 
* @param pwd 用户输入的登录密码
 
* @return 登录信息有效:返回用户对象,否则返回NULL
 
*/
 
public boolean login(String name, String pwd) {
 
//用户名为空,密码为空
 
//try{
 
if(userset.search(name)==null){
 
//throw new UserException("用户 "+name+":该用户不存在");
 
System.out.println("用户 "+name+":该用户不存在");
 
return false;
 
}else if(!userset.verify(name, pwd)){
 
//throw new UserException("用户 "+name+":用户名或密码错误");
 
System.out.println("用户 "+name+":用户名或密码错误");
 
return false;
 
}
 
System.out.println("用户 "+name+" 登陆成功!");
 
//}catch(UserException e){
 
//System.out.println(e.toString());
 
//return false;
 
//}
 
return true;
 
}
 
public static void main(String[] args) {
 
UserService us = new UserService();
 
User u1 =  new User("王建","000000");
 
us.addUser(u1);;
 
us.login("李建", "111111");
 
us.login("王建", "111111");
 
us.login("王建", "000000");
 
}
 
}</nowiki>
 

2019年5月20日 (一) 06:51的最新版本

代码与命令行版的Dao层基本一致: