ResultSet可以处理多个表吗?

时间:2013-12-10 17:30:25

标签: java sql jdbc

假设我有这样的查询,例如:

select b.id, b.desc, c.context_desc, d.age 
from 
index a, events b, contexts c, user d
where 
a.id = b.id and a.context_id = c.context_id and a.user_id = d.user_id
order by b.id

在Java中,ResultSet可以处理多个表(假设列名都是唯一的)?

int id = resultSet.getInt("id");
String desc = resultSet.getString("desc");
String context_desc = resultSet.getString("context_desc");
int age = resultSet.getInt("age");

2 个答案:

答案 0 :(得分:1)

  

在Java中,ResultSet可以处理多个表(假设列名都是唯一的)?

是的,这是可能的!

如果您有2个具有相同名称的列,则可以为它们指定别名。

答案 1 :(得分:1)

绝对

结果集仅包含SELECT子句指定的列。在FROM子句中,您拥有的表数绝对没有区别。在您的情况下,您的结果集将包含iddesccontext_descage列,如您所示。

最终,只要您的SQL是合法的,意味着列名称是明确的,唯一命名的和可见的,结果集将包含您指定的内容(不多也不少)。

这是ResultSet文档,有关它如何工作以及如何使用它的更多信息。