如何解决尝试检索列名,但通过IBM JDBC驱动程序从元数据中获取列索引
我正在为IBM DB2 Z / OS(版本4.13.127)使用jdbc驱动程序,并且试图从元数据中获取表信息。 我的行为与预期的行为不同:我没有获取列名,而是获得了列索引。
ds=new com.ibm.db2.jcc.DB2SimpleDataSource();
((com.ibm.db2.jcc.DB2BaseDataSource) ds).setServerName(ip);
((com.ibm.db2.jcc.DB2BaseDataSource) ds).setPortNumber(portNumber);
((com.ibm.db2.jcc.DB2BaseDataSource) ds).setDatabaseName(databaseName);
((com.ibm.db2.jcc.DB2BaseDataSource) ds).setDriverType(4);
con = ds.getConnection(user,password);
DatabaseMetaData metadata = con.getMetaData();
rs = metadata.getTables(null,"MY_SCHEMA","MY_TABLE",null);
int columnsNumber = rs.getMetaData().getColumnCount();
while (rs.next()) {
for (int i = 1; i <= columnsNumber; i++) {
if (i > 1) System.out.print(",");
String columnValue = rs.getString(i);
System.out.print(columnValue + " " + rs.getMetaData().getColumnName(i));
}
}
结果显示在下面:
null 1,MY_SCHEMA 2,MY_TABLE 3,TABLE 4,5,null 6,null 7,null 8,null 9,null 10
我期望getColumnName
方法返回字符串属性(table_name,schema_name等)。
它特定于db2 jdbc驱动程序吗?
解决方法
有关使用Db2特定驱动程序属性useJDBC4ColumnNameAndLabelSemantics
的信息,请参见this IBM technote。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。