02.28 Java 實現數據表與簡單Java類映射轉換

我們在程序開發過程中往往會使用簡單Java類進行數據表結構的描述,本文主要介紹如何簡單Java類與數據表之間的轉換。

首先,先簡單介紹一下數據表與簡單Java類的相關概念對比:

  • 表的定義 → 實體表設計
  • 表的字段 → 類的成員屬性
  • 表的外鍵關聯 → 對象引用關聯
  • 表的記錄 → 類的實例化對象
  • 表的多行記錄 → 對象數組

在數據庫表設計時,我們想要描述就部門與員工歸屬部門的關聯關係,通常會設計兩張表,部門表和員工信息表,如下Department表、Employees表:

Java 實現數據表與簡單Java類映射轉換

通過上述兩張表可以提取出如下邏輯關係:

  • 每個員工歸屬一個領導
  • 每個員工歸屬於一個部門
  • 每個部門包含的員工

那麼如何描述表數據與關係呢?為了描述上述兩張表,我們需要根據表結構定義實體類結構,通過成員屬性的引用關係描述表連接(邏輯關係)。

Java 實現數據表與簡單Java類映射轉換


我們通過定義Department類來描述Department表,其中我們使用emp屬性描述一個部門包含多個員工的邏輯關係,因為一個部門包含多個員工, 因此使用對象數組來描述,代碼如下:

<code> class  Department
  {
  /*部門ID*/
  private String deptNumber ;
     /* 部門名稱*/
  private String deptName;
     /*一個部門包含的員工*/
  private Employees emp [] ;
 
  public  Department(String number, String name) {
  this.deptNumber = number ;
  this.deptName = name ;
  }
 
  public void setEmp(Employees []  emp) {
  this.emp = emp ;
  }
 
  public Employees [] getEmp() {
  return this.emp ;
  }
 
  public String deptInfo() {
  return "部門ID:" + this.deptNumber +" -> " + "部門名稱:" + this.deptName ;
  }
 }/<code>


Java 實現數據表與簡單Java類映射轉換

我們通過定義Employees類來描述Employees表,其中我們使用deptNumber屬性描述每個員工歸屬一個部門的邏輯關係,使用leader屬性描述每個員工歸屬一個領導的邏輯關係,代碼如下:

<code> class Employees{
  private String empNumber;
  private String empName ;
     /*每個員工歸屬一個部門*/
  private  Department deptNumber ;
  private String empLevel ;
     /*每個員工歸屬一個領導*/
  private Employees leader ;
 
  public Employees(String empNumber,String empName,String empLevel) {
  this.empNumber = empNumber ;
  this.empName = empName ;
  this.empLevel = empLevel ;
  }
 
  public void setDeptNumber(Department deptNumber) {
  this.deptNumber =  deptNumber;
  }
 
  public void setLeader(Employees leader) {
  this.leader = leader ;
  }
  public Employees getLeader() {
  return this.leader ;
  }
  public Department getDept() {
  return this.deptNumber ;
  }
 
  public String empInfo() {
  return "員工編號:"+ this.empNumber+" -> "  + "姓名:" + this.empName+" -> " + "級別:" + this.empLevel ;
  }
 }/<code>

如下,我們通過實例化Department、Employees對象,設置屬性數據,並根據引用關係可以獲取數據內容。

<code> public class ArrayDemo {
  public static void main(String arg []) {
  Department dept1 = new Department("1", "測試部") ;
  Department dept2 = new Department("2", "總經辦") ;
  Employees emp1 = new Employees("9527", "群群", "架構師") ;
  Employees emp2 = new Employees("9528", "嘰嘰", "架構師") ;
  Employees emp3 = new Employees("9529", "琳琳", "總經理") ;
 
  emp1.setDeptNumber(dept1);
  emp2.setDeptNumber(dept1);
  emp3.setDeptNumber(dept2);
  emp1.setLeader(emp3);
  emp2.setLeader(emp3);
 
  dept1.setEmp(new Employees [] {emp1,emp2});
  dept2.setEmp(new Employees [] {emp3});
 
  /*
  * 查看測試部下所有員工
  */
  System.out.println(dept1.deptInfo());
  for (Employees employees : dept1.getEmp()) {
  System.out.println("所含員工信息: "+ employees.empInfo() + "\\n     員工上級領導信息: "+ employees.getLeader().empInfo());
 
  }
  }
 
 
 }/<code>

獲取數據如下:

<code> 部門ID:1 -> 部門名稱:測試部
 所含員工信息: 員工編號:9527 -> 姓名:群群 -> 級別:架構師
      員工上級領導信息: 員工編號:9529 -> 姓名:琳琳 -> 級別:總經理
 所含員工信息: 員工編號:9528 -> 姓名:嘰嘰 -> 級別:架構師

      員工上級領導信息: 員工編號:9529 -> 姓名:琳琳 -> 級別:總經理
 /<code>



分享到:


相關文章: