当我与 JAVA dao architect 一起工作时,我遇到了外键问题
When I work with JAVA dao architect I had a problem when I had a foreign key
我有一个 java 项目关于使用 java ana DAO 设计管理银行账户。我在运营 class 工作取决于客户 class 和帐户(法语 compte)class.
操作变量class是这样的:
private String DateDebut ;
private String DateFin ;
private String NumeroOperation ;
private String TypeOperation ;
private Compte Compte ;
private Client Client ;
public Operation(String numeroOperation, String typeOperation, String dateDebut, String dateFin, Compte compte,Client client) {
DateDebut = dateDebut;
DateFin = dateFin;
NumeroOperation = numeroOperation;
TypeOperation = typeOperation;
Compte =compte ;
Client = client ;
}
然后我在 OperationDAO Class 中写到通过他们的 ID 找到操作:
public Operation findById (String code) {
Connection cnx = Sconnection.getInstance() ;
Operation op=null;
try {
PreparedStatement req = cnx.prepareStatement("select * from operation where numerOperation = ? ");
req.setString(1, code);
ResultSet res= req.executeQuery();
while (res.next())
{
op = new Operation(code, res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6)) ;
System.out.println(res.getString(2) +" " +res.getString(3)+" " +res.getString(4));
}
req.close();
}catch (SQLException e)
{System.out.println("Erreur de chargement de client.. verifier !!"+ e.getMessage());}
return op;
}
但是我在这一行遇到了问题:
op = new Operation(code,res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6)) ;
但是在数据库操作中Table是这样的
但我不知道如何保存或更新或查找外键变量。
从你的解释中我了解到,你想在操作中保存Compte和Client class。
在初始化操作 class 时出现问题。
由于 NumeroCompt 和 NumeroClient 都是外键,您需要再进行 2 次数据库调用才能从 NumeroCompt 获取 Compt 的详细信息,从 NumeroClient 获取 Client 的详细信息
更新时你也必须这样做。再进行 2 次更新调用以在其他 table.
中保存详细信息
转向使用 Hibernate/JPA 会让您的生活轻松很多。
我有一个 java 项目关于使用 java ana DAO 设计管理银行账户。我在运营 class 工作取决于客户 class 和帐户(法语 compte)class.
操作变量class是这样的:
private String DateDebut ;
private String DateFin ;
private String NumeroOperation ;
private String TypeOperation ;
private Compte Compte ;
private Client Client ;
public Operation(String numeroOperation, String typeOperation, String dateDebut, String dateFin, Compte compte,Client client) {
DateDebut = dateDebut;
DateFin = dateFin;
NumeroOperation = numeroOperation;
TypeOperation = typeOperation;
Compte =compte ;
Client = client ;
}
然后我在 OperationDAO Class 中写到通过他们的 ID 找到操作:
public Operation findById (String code) {
Connection cnx = Sconnection.getInstance() ;
Operation op=null;
try {
PreparedStatement req = cnx.prepareStatement("select * from operation where numerOperation = ? ");
req.setString(1, code);
ResultSet res= req.executeQuery();
while (res.next())
{
op = new Operation(code, res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6)) ;
System.out.println(res.getString(2) +" " +res.getString(3)+" " +res.getString(4));
}
req.close();
}catch (SQLException e)
{System.out.println("Erreur de chargement de client.. verifier !!"+ e.getMessage());}
return op;
}
但是我在这一行遇到了问题:
op = new Operation(code,res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6)) ;
但是在数据库操作中Table是这样的
但我不知道如何保存或更新或查找外键变量。
从你的解释中我了解到,你想在操作中保存Compte和Client class。
在初始化操作 class 时出现问题。
由于 NumeroCompt 和 NumeroClient 都是外键,您需要再进行 2 次数据库调用才能从 NumeroCompt 获取 Compt 的详细信息,从 NumeroClient 获取 Client 的详细信息
更新时你也必须这样做。再进行 2 次更新调用以在其他 table.
中保存详细信息转向使用 Hibernate/JPA 会让您的生活轻松很多。