Spring JDBC SqlRowSet 使用非唯一列标签检索



Spring 的 SqlRowSet 有 String getString(String columnLabel)

但是,如果我的查询联接了两个具有相同列名的表,则结果集将具有非唯一的列标签。

例如:

select a.name, b.name
from a
join b on a.id=b.id

在运行查询并填充 SqlRowSet 对象后,我调用。

例如:

sqlRowSet.getString("name")

它会 a.name 还我,还是 b.name?

尝试具体,例如使用:

sqlRowSet.getString("a.name")

将抛出错误

如果您有非唯一名称,则需要使用 AS 子句分配唯一标签,或者需要改为按索引检索列。

使用 AS(请注意,AS本身 - 在大多数数据库系统中 - 可选):

select a.name AS aname, b.name bname
from a
join b on a.id=b.id
sqlRowSet.getString("aname")

按索引。要检索a.name

sqlRowSet.getString(1)

最新更新