我們在程序開發過程中往往會使用簡單Java類進行數據表結構的描述,本文主要介紹如何簡單Java類與數據表之間的轉換。
首先,先簡單介紹一下數據表與簡單Java類的相關概念對比:
- 表的定義 → 實體表設計
- 表的字段 → 類的成員屬性
- 表的外鍵關聯 → 對象引用關聯
- 表的記錄 → 類的實例化對象
- 表的多行記錄 → 對象數組
在數據庫表設計時,我們想要描述就部門與員工歸屬部門的關聯關係,通常會設計兩張表,部門表和員工信息表,如下Department表、Employees表:
通過上述兩張表可以提取出如下邏輯關係:
- 每個員工歸屬一個領導
- 每個員工歸屬於一個部門
- 每個部門包含的員工
那麼如何描述表數據與關係呢?為了描述上述兩張表,我們需要根據表結構定義實體類結構,通過成員屬性的引用關係描述表連接(邏輯關係)。
我們通過定義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>
我們通過定義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>
閱讀更多 軟件測試開發技術棧 的文章