一个登陆的例子

1、三层架构的图示:css

一、DAO层,持久层,data access object。hibernate是最开始普遍使用的持久层框架,有一个突出的优势是能够进行数据的填充(老师举得例子是School下有Class,Student,能够直接经过School来填充下面的数据,不太懂)。myBatis是如今比较流行的框架。java

二、biz层,业务逻辑层,也有习惯写为service层,可是容易与以后的web service之类的搞混。按理来讲是一个项目最为复杂的地方。web

三、UI层spring

四、Entity实体层。架构

可是他又说struts,springMVC是控制层的东西,这里面没有提到这一层,因此不肯定这个是否是MVC架构。(后补:这个三层架构确实不是MVC架构,而是由微软推荐的架构划分,从下至上分别为:数据访问层、业务逻辑层/领域层、表示层)框架

2、包ide

    三层架构和package相对应,同时package也解决了明明冲突的问题。函数

    包的命名规则:包通常为所有小写测试

    com.icss.bk.dao.shop
    范围.公司简写.项目名简写.层次结构.模块的划分.net

    若是项目较小,则不须要进行最后模块的划分。

3、java中的枚举

    听说Java中的枚举类型设置不够好,通常的作法是在实体类中经过接口模拟枚举。

public interface IRole {
	int ADMIN = 1;         //管理员
	int COMMOM=2;   
	int VIP = 3;
}

4、关于数据的返回方法

    除了函数返回,引用以外,还有经过异常来进行返回的。

    在有必定的前期工做的状况下,咱们如何判断用户输入为空,进行更加友好的提示呢?具体作法是:

    一、在实体类中自定义一个异常类:

package com.icss.bk.entity;

public class InputEmptyException extends Exception{
     public InputEmptyException(String msg){
    	 super(msg);    	 
     }
}

    二、在biz层中,经过throw和throws来产生和抛出异常

    throw和throws的区别:http://blog.csdn.net/hhy62011980/article/details/5548278

public class UserBiz implements IUser{

	@Override
	public User login(String uname, String pwd) throws InputEmptyException,Exception {
		User user = null;
		
		if(uname != null && !uname.equals("") && pwd != null && !pwd.equals("")){
			 UserDao dao = new UserDao();
			 user = dao.login(uname, pwd);    //调用dao层获取用户对象
		}else{
			throw new InputEmptyException("用户名或密码为空!");    //产生异常
		}
		
		return user;
	}
}

    三、在UI层中捕获异常:

public class UserUi {
	//测试类
	public static void loginTest(){
		
		UserBiz biz = new UserBiz();		
		try {
			User u = biz.login("","abc");
			if(u == null){
				System.out.println("用户名或密码错误,请检查!");
			}else{
				System.out.println(u.getUname() + "登陆成功");		
				if(u.getRole() == IRole.ADMIN){
					System.out.println(u.getUname() + "是管理员");
				}else if(u.getRole() == IRole.COMMOM){
					System.out.println(u.getUname() + "是普通用户");
				}else if(u.getRole() == IRole.VIP){
					System.out.println(u.getUname() + "是VIP用户");
				}else{
					
				}
			}
		} catch (InputEmptyException e) {
			System.out.println(e.getMessage());    //捕获异常,提示用户
		} catch (Exception e) {
			e.printStackTrace();
		}		
	}
	
	public static void main(String[] args) {
		UserUi.loginTest();
	}

}
相关文章
相关标签/搜索