设为首页 收藏本站
查看: 546|回复: 0

[经验分享] java获取Oracle和access数据库结构

[复制链接]
YunVN网友  发表于 2016-8-16 06:31:32 |阅读模式
  第一步,获取access所有表名
  1.
  List list = new ArrayList();
DatabaseMetaData dbmd=Conn.getMetaData();

ResultSet rs=dbmd.getTables(null,
null,"%",new String[]{"SYNONYM","TABLE"});
while(rs.next()){

  String tableName=rs.getString(3);
  }
  getTables(Stringcatalog,
  StringschemaPattern,
  StringtableNamePattern,
  String[]types)
  
参数:
  catalog - 类别名称;它必须与存储在数据库中的类别名称匹配;该参数为 "" 表示获取没有类别的那些描述;为 null 则表示该类别名称不应该用于缩小搜索范围
  schemaPattern - 模式名称的模式;它必须与存储在数据库中的模式名称匹配;该参数为 "" 表示获取没有模式的那些描述;为 null 则表示该模式名称不应该用于缩小搜索范围
  tableNamePattern - 表名称模式;它必须与存储在数据库中的表名称匹配
  types - 要包括的表类型所组成的列表,必须取自从 getTableTypes() 返回的表类型列表;null 表示返回所有类型
  
  2.获取Oracle所有表名称:
  List list = new ArrayList();
DatabaseMetaData dbmd=Conn.getMetaData();

ResultSet rs=dbmd.getTables(null,userName,"%",new String[]{"TABLE"});
while(rs.next()){

  String tableName=rs.getString(3);
  }
  区别就在于(红色标记的部分)。
  userName 改数据库的用户名。
  第二步,获取某一个表的列名:
  DatabaseMetaData dbmt = conn.getMetaData();
ResultSet columnSet = dbmt.getColumns(null, "%", tableName, "%");//oracle

  ResultSet columnSet = dbmt.getColumns(null,null, tableName, "%");//access
while(rs.next()){

  String columnName = columnSet.getString("COLUMN_NAME");//字段名称(列名)
  String fidld_type =columnSet.getString("TYPE_NAME");//字段类型
  
}

//获得所有列的数目及实际列数
int columnCount=data.getColumnCount();

//
获得指定列的列名
String columnName = data.getColumnName(i);

//
获得指定列的列值
String columnValue = rs.getString(i);

//
获得指定列的数据类型
int columnType=data.getColumnType(i);

//
获得指定列的数据类型名
String columnTypeName=data.getColumnTypeName(i);

//
所在的Catalog名字
String catalogName=data.getCatalogName(i);

//
对应数据类型的类
String columnClassName=data.getColumnClassName(i);

//
在数据库中类型的最大字符个数
int columnDisplaySize=data.getColumnDisplaySize(i);

//
默认的列的标题
String columnLabel=data.getColumnLabel(i);

//
获得列的模式
String schemaName=data.getSchemaName(i);

//
某列类型的精确度(类型的长度)
  
  
  可以去参考JavaAPI文档有详细的介绍。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-258233-1-1.html 上篇帖子: oracle导入数据库之imp及排错 下篇帖子: oracle保存小数点前为"0"的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表