bah*_*tan 6 java postgresql jdbc
在java上运行Postgres上的select时
SELECT '' AS COL1, 0 AS COL2 FROM MYTABLE 1=2;
Run Code Online (Sandbox Code Playgroud)
列类型Types.OTHER适用于COL1和COL2.因为很明显结果集没有任何行.
但是如果我使用以下查询在结果集中有行:
SELECT '' AS COL1, 0 AS COL2 FROM MYTABLE;
Run Code Online (Sandbox Code Playgroud)
COL1的类型仍然Types.OTHER是COL2类型Types.INTEGER.在我来说,我需要Types.VARCHAR和Types.INTEGER甚至结果是空的.
是否有数据库层或JDBC URL上的任何配置,以获得Types.VARCHAR和Types.INTEGER既为两个查询.
Postgres JDBC 驱动程序 9.4.1212 将常量 0 的类型报告为Types.INTEGER= 4,无论是否有结果(这也可能取决于服务器版本 - 我使用 9.4 服务器进行测试)。
字符串常量仍报告为Types.OTHER。对于此类列ResultSetMetaData.getColumnClassName(i)返回java.lang.String,因此如果遇到 a ,Types.OTHER您可以使用此信息将该列识别为字符列。
如果您希望ResultSetMetaData返回所需的类型,请从 Github 获取源代码并修补ResultSetMetaData以执行此转换。
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |