一個登陸的例子

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

}
相關文章
相關標籤/搜索