JDBC将仅通过查询中指定的名称来命名列-它不知道表名等。
您有两种选择:
选项1: 在查询中使用不同的名称命名列,即
SELECt a.columnName as columnNameA, b.columnName as columnNameB, ...from table1 a, table2 b where (WHATEVER)
然后在您的Java代码中参考列别名:
resultSet.getString("columnNameA");resultSet.getString("columnNameB");
选项2: 在对JDBC API的调用中,参考列的 位置 :
resultSet.getString(1);resultSet.getString(2);
请注意,JDBC API使用 基于 索引的索引-即它们从
1(而不是
0像Java索引一样)计数,因此
1用于第一列,
2第二列等。
我建议使用选项1,因为引用命名的列更安全:有人可以更改查询中列的顺序,这会无声地破坏您的代码(您将访问错误的列,但不知道),但是如果它们更改列名,您至少会在运行时收到“无此列”异常。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)