“商苑面馆:Java命令行版之 Model层”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“==Model层的作用== *M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中…”)
 
 
(未显示同一用户的4个中间版本)
第25行: 第25行:
 
 
 
public UserService() {
 
public UserService() {
userset = new UserDaoArray();
+
                //这里根据实际情况,选择数据的实现类
 +
//userset = new UserDaoArray();
 +
                userset = new UserDaoSQL();
 
}
 
}
 
</nowiki>
 
</nowiki>
+
 
 
===添加用户功能:addUser===
 
===添加用户功能:addUser===
  
第37行: 第39行:
 
 
 
userset.addUser(user);
 
userset.addUser(user);
         System.out.println("用户 "+user.getname() +" 注册成功");         
+
         System.out.println("用户 "+user.getName() +" 注册成功");         
 
System.out.println();
 
System.out.println();
 
} </nowiki>
 
} </nowiki>
第77行: 第79行:
 
us.login("王建", "000000");
 
us.login("王建", "000000");
 
}</nowiki>
 
}</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;
 
  <nowiki>package service;

2019年5月19日 (日) 07:18的最新版本

Model层的作用

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

Java8-1.png

客户端功能

Java2-36.png


客户端Model层的编写

新建类UserService

新建包service,在其中新建此类。

 package service;

import dao.*;
import entity.*;
//import exception.UserException;
public class UserService {
	
	/**
	 * 用户集类(用于存储用户
	 */
	private UserDao userset = null;
	
	
	public UserService() {
                //这里根据实际情况,选择数据的实现类
		//userset = new UserDaoArray();
                userset = new UserDaoSQL();
	}
	

添加用户功能:addUser

/**
	 * 用于向用户集添加用户
	 */
	public void addUser(User user){
		
		userset.addUser(user);
        System.out.println("用户 "+user.getName() +" 注册成功");        
		System.out.println();
	}	

用户登陆验证功能:login()

/**
	 * 登录验证,判断用户名与密码是否一致
	 * 
	 * @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;
	}

在main方法中编写测试代码

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

与View层、Dao层联调联试

在View层UserShow的start()方法中加入如下代码,调用UserService.

这样就是实现了View 层 调用 Model层 ,Model层又调用 Dao层, MVC三层架构基本建立成功!

Java7-36.png

然后鼠标右击UserShow类,RUN AS -> JAVA APPLICATION :

Java7-37.png

完整代码

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