`
zhongxiucheng
  • 浏览: 68592 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

通过DatabaseMetaData从Oracle中获取字段的注释

 
阅读更多

关于从DatabaseMetaData接口中获取注释这个问题我一直想弄明白,在网上碰巧看看这篇文章,其中所说得不知道是不是正确的,需要日后验证一下

今天在扩展ibator插件时,在生成model中每个field的注释时,想从oracle数据库中获取每个字段的comments作为注释.使用jdbc的支持,代码如下:

ResultSet rs = (java.sql.DatabaseMetaData)databaseMetaData.getColumns(localCatalog, localSchema,localTableName, null);

while (rs.next()){
rs.getString("REMARKS"));

.............................

java.sql.DatabaseMetaData.getColumns 这个方法从注释就能清楚的看到,可以获取数据库的很多元信息,当然包括表和字段的注释.但是,我获取时,却是NULL.GOOGLE了半天,发现原来oracle是需要在连接JDBC获取connection时通过一个参数来设置是否能获取comments.具体如下:

Properties props =newProperties();

props.put("remarksReporting","true");
Class.forName("oracle.jdbc.driver.OracleDriver");

dbConn = DriverManager.getConnection(url, props);
DatabaseMetaData dbmd = dbConn.getMetaData();

rs = dbmd.getColumns(null,"OPS$AIMSADM","AIRCRAFTS","CODE");

if(rs.next()) {System.out.println("Remarks: "+ rs.getObject(12)); }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics