1. 程式人生 > >Java三層結構,附原始碼

Java三層結構,附原始碼

1,三層架構分為:資料訪問層(dao,持久層),業務邏輯層(service,業務層),表示層(view,表示層)

2,資料訪問層:主要負責資料庫的訪問(增刪改查)。

3,業務邏輯層:主要負責業務處理和資料傳遞,將資料訪問層傳來的資料加工處理,並將資料傳給表示層。

如圖4所示,表示層:將業務邏輯層處理好的資料展示給使用者。

5,解析

6,建包

7,資料庫

8,實體類

//學生實體類和資料庫student中stu表對應
public class Student {
	private int stuid;	//學生編號
	private String stuname; //學生姓名
	private int age;//年齡
	private String address;//地址
	//get、set
	public int getStuid() {
		return stuid;
	}
	public void setStuid(int stuid) {
		this.stuid = stuid;
	}
	public String getStuname() {
		return stuname;
	}
	public void setStuname(String stuname) {
		this.stuname = stuname;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Student [stuid=" + stuid + ", stuname=" + stuname + ", age=" + age + ", address=" + address + "]";
	}
	public Student(int stuid, String stuname, int age, String address) {
		super();
		this.stuid = stuid;
		this.stuname = stuname;
		this.age = age;
		this.address = address;
	}
	public Student() {
		super();
	}
	public Student(String stuname, int age, String address) {
		super();
		this.stuname = stuname;
		this.age = age;
		this.address = address;
	}
	
}

9,數訪問層

/**
 * 資料訪問層:只要和資料庫打交道,對資料庫進行crud操作
 */
public class StudentDao {
	//查詢所有學生資訊
	public List<Student> getStudentAll() {
		//建立連線物件
		Connection conn = null;
		//執行物件
		PreparedStatement pst = null;
		//結果集
		ResultSet rs = null;
		//集合
		List<Student> list = new ArrayList<Student>();
		//建立連線
		conn=DBUtil.getConnection();
		//sql語句
		String sql="select * from stu";
		try {
			//建立執行物件
			pst=conn.prepareStatement(sql);
			//執行並返回結果
			rs=pst.executeQuery();
			//把結果集每一條新增到實體類,再將實體類新增到list
			while (rs.next()) {
				Student student = new Student(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getString(4));
				list.add(student);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			//關閉連線
			DBUtil.connClose(rs, pst, conn);
		}
		//返回結果
		return list;
	}
}

10,業務邏輯層

/**
 * 業務邏輯層:進行業務處理,資料加工,依賴於資料訪問層
 *
 */
public class StudentService {
	StudentDao studentDao = new StudentDao();
	
	//查詢所有學生資訊
	public List<Student> getStudentAll(){
		return studentDao.getStudentAll();
	}
}

11,表示層

public class StudentView {
	//建立service物件
	static StudentService service = new StudentService();
	//建立輸入物件
	static Scanner sc = new Scanner(System.in);
	
	public static void main(String[] args) {
		display();
	}
	//顯示介面
	public static void display() {
		while (true) {
			System.out.println("----------學生管理系統----------");
			System.out.println("1.查詢  2.新增  3.修改  4.刪除  5.退出");
			System.out.println("請選擇:");
			int result = sc.nextInt();
			switch (result) {
			case 1:
				//查詢
				select();
				break;
			case 2:
				//新增
				break;
			case 3:
				//修改
				break; 
			case 4:
				//刪除
				break;
			case 5:
				//退出
				System.out.println("退出成功");
				System.exit(0);
				break;
			default:
				System.out.println("輸入有誤");
				break;
			}
		}
	}
	//查詢所有使用者
	public static void select() {
		//呼叫service層  查詢所有使用者  方法
		List<Student> list = service.getStudentAll();
		//遍歷輸出
		for (Student student : list) {
			System.out.println(student);
		}
	}
	
}

附:原始碼