【发布时间】:2019-05-17 08:32:53
【问题描述】:
我正在为员工管理系统制作程序.. 现在我正在制作员工注册的 CRUD 表单,我在数据层、业务逻辑和 gui 中分离了 src 代码。在 gui 中我分离了 gui 视图和 gui 模型,在Gui 模型我创建了一个 EmployeeTableModel 来指定我想如何显示员工表的数据,但是在那个表中我得到了来自多个表的数据,一个是数据库中的 Employee 表,另一个是 Phone .. 我已经成功获得Employee Table 中的数据,我可以将这些数据放在数据库中的 Employee Table 和 Phone 表中,但我无法将它们放入 TableModel,我只能从员工那里获取数据。
我尝试更改 EmployeeTableModel 中的代码以接受更多列并设法从电话表中添加数据,但没有奏效,因为每个员工都有 2 个 -3 电话号码并且 Employee_ID 被指定为外国电话表上的键..正如我所说,每个员工都有 3 部电话,当我们指定要获取哪部电话时,它取决于电话表中的外键 employee_id。
public class PunetoriTableModel extends AbstractTableModel {
List<Punetori> list;
TelefoniRepository tr = new TelefoniRepository();
PunetoriRepository pr = new PunetoriRepository();
String[] cols = {"Nr.", "Nr-Departmentit", "Emri", "Mbiemri", "Email", "Qyteti","Adresa","tel1","tel2"};
public PunetoriTableModel() {
}
public PunetoriTableModel(List<Punetori> list) {
this.list = list;
}
public void addList(List<Punetori> list) {
this.list = list;
}
@Override
public String getColumnName(int col) {
return cols[col];
}
@Override
public int getRowCount() {
return list.size();
}
public void remove(int row) {
list.remove(row);
}
public Punetori getPersoni(int index) {
return list.get(index);
}
@Override
public int getColumnCount() {
return cols.length;
}
public String getDateToString(Date d) {
DateFormat da = new SimpleDateFormat("dd-MM-yyyy");
return da.format(d);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Punetori p = list.get(rowIndex) ;
switch (columnIndex) {
case 0:
return p.getPunetoriID();
case 1:
return p.getDepartmentiId();
case 2:
return p.getEmri();
case 3:
return p.getMbiemri();
case 4:
return p.getEmail();
case 5:
return p.getQyteti();
case 6:
return p.getAdresa();
default:
return null;
}
}
}
【问题讨论】:
-
如果员工有 3 部手机,您需要 3 列(显示每部手机)以及员工和他的手机之间的对象映射(因此您的 Employee 类具有类似
List<String> getPhones();的方法)。 -
请输入数据类和代码如何从数据库中检索它们。 (您在使用 JPA 吗?)我们无法真正理解您的问题到底是什么。
-
我正在使用 JPA,并且我为数据库 {Entity Classes} 生成的每个表创建了一个接口和存储库类,在接口中我有 CRUD 操作的方法,在存储库中我使用实现它们jpa 实体管理器。
标签: java swing join jtable tablemodel