我有两张表与外键相关联: enter image description here
我使用SQL查询从两个表中检索值:
User u = new User();
String sql = "SELECT * FROM user INNER JOIN account ON user.id = account.user WHERE user.id = 1 ";
try {
Statement stm = con.createStatement();
ResultSet rsu = stm.executeQuery(sql);
while(rsu.next()){
u.setFname(rsu.getString("fname"));
u.setLname(rsu.getString("lname"));
u.setMname(rsu.getString("mname"));
u.setGender(rsu.getString("gender"));
u.setAddress(rsu.getString("address"));
u.setCitizenship(rsu.getLong("citizenship"));
/**
*
* Here i want to get values of account table and set it on
* user object to return u
*
*/
}
return u;
} catch (SQLException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
很容易获得表格的值。您需要做的就是提供您在ResultSet中已经获得的帐户表的列名。
u.setAccountID(rsu.getLong("accId"));
此处,帐户ID存储在您已从结果集
中的数据库中检索到的结果集对象中答案 1 :(得分:0)
1)在SQL中包含帐户数据,如下所示:
SELECT user.*, account.* FROM user INNER JOIN account ON user.id = account.user WHERE user.id = 1
2)访问帐户字段就像用户字段:
u.setAccountType(rsu.getString("accountType"));
u.setAccountNo(rsu.getString("accountNo"));
3)确保关闭Statement
区块中的finally
。
4)您不需要迭代整个结果集,因为您只需要一条记录。只需将while
替换为if
。