您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JDBC ResultSet获取具有表别名的列

JDBC ResultSet获取具有表别名的列

JDBC将仅通过查询中指定的名称来命名列-它不知道表名等。

您有两种选择:

查询中使用不同的名称命名列,即

SELECT
    a.columnName as columnNameA,
    b.columnName as columnNameB,
    ...
from table1 a, table2 b where (WHATEVER)

然后在您的Java代码中参考列别名:

resultSet.getString("columnNameA");
resultSet.getString("columnNameB");

在对JDBC API的调用中,参考列的 位置

resultSet.getString(1);
resultSet.getString(2);

请注意,JDBC API使用 基于 索引的索引-即它们从1(而不是0像Java索引一样)计数,因此1用于第一列,2第二列等。

我建议使用选项1,因为引用命名的列更安全:有人可以更改查询中列的顺序,这会无声地破坏您的代码(您将访问错误的列,但不知道),但是如果它们更改列名,您至少会在运行时收到“无此列”异常。

其他 2022/1/1 18:13:32 有896人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶