Java三層結構
阿新 • • 發佈:2018-12-18
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); } } }
附:原始碼