DatabaseMetaData使用(读hibernate源代码)

原创 2006年05月24日 16:34:00

try {
   Connection conn = connections.getConnection();
   try {
    DatabaseMetaData meta = conn.getMetaData();
    databaseName = meta.getDatabaseProductName();
    databaseMajorVersion = getDatabaseMajorVersion(meta);
    log.info("RDBMS: " + databaseName + ", version: " + meta.getDatabaseProductVersion() );
    log.info("JDBC driver: " + meta.getDriverName() + ", version: " + meta.getDriverVersion() );
    
    metaSupportsScrollable = meta.supportsResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE);
    metaSupportsBatchUpdates = meta.supportsBatchUpdates();(判断是否使用批量操作)
    
    if ( Environment.jvmSupportsGetGeneratedKeys() ) {
     try {
      Boolean result = (Boolean) DatabaseMetaData.class.getMethod("supportsGetGeneratedKeys", null)
       .invoke(meta, null);
      metaSupportsGetGeneratedKeys = result.booleanValue();
     }
     catch (AbstractMethodError ame) {
      metaSupportsGetGeneratedKeys = false;
     }
     catch (Exception e) {
      metaSupportsGetGeneratedKeys = false;
     }
    }
    
   }
   finally {
    connections.closeConnection(conn);
   }
  }
  catch (SQLException sqle) {
   log.warn("Could not obtain connection metadata", sqle);
  }
  catch (UnsupportedOperationException uoe) {
   // user supplied JDBC connections
}

详细说明(转载) - http://www.leftworld.net/online/j2sedoc/javaref/java.sql.databasemetadata_dsc.htm

java.sql.DatabaseMetaData
 
public interface DatabaseMetaData
 
该类提供了关于数据库的整体信息。
 
这里的许多方法将在 ResultSets 中返回信息列表。可以使用一般的 ResultSet 方法如 getString 和 getInt 从这些 ResultSet 中检索数据。如果给定的元数据格式是不可用的,这些方法将抛出一个 SQLException。
有些方法采用 String 模式的参数。这些参数都具有诸如 fooPattern 的名称。在一个模式字符串中,"%" 表示匹配任意由 0 个或多个字符组成的子字符串,"_" 表示匹配任意一个字符。只返回与搜索模式匹配的元数据项。如果将一个搜索模式参数设置为 null 引用,这意味着将从搜索中删除该参数的标准。
如果驱动程序不支持元数据方法,将抛出一个 SQLException。在方法返回一个 ResultSet 的情况下,将返回一个 ResultSet ( 它可能为空 ) 或者抛出一个 SQLException。
 

hibernate...TableMetadata加载东西慢怎么办?

现象启动org.hibernate.tool.hbm2ddl.TableMetadata 一直在家在什么东西,特别浪费时间,日志如下:09:54:39 org.hibernate.tool.hbm2...
  • FANGAOHUA200
  • FANGAOHUA200
  • 2016年12月11日 22:32
  • 1017

hibernate中元数据ClassMetadata用法及原理

hibernate通过ClassMetadata接口来访问元数据,ClassMetadata cm = sessionfactory.getClassMetadata(类名.class),ClassM...
  • huaishuming
  • huaishuming
  • 2015年09月24日 10:58
  • 3078

Hibernate的元数据(不需要java类,动态建表,存储,读取)

Hibernate中有一个非常丰富的元数据模型,含有所有的实体和值类型数据的元数据。  原文地址:http://t.cn/z8OdngF Hibernate提供了ClassMetadata接口、...
  • fengxinyixiao
  • fengxinyixiao
  • 2013年09月14日 15:38
  • 4037

hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC...
  • sdgihshdv
  • sdgihshdv
  • 2017年04月12日 23:00
  • 465

有关于hibernate的配置问题(1)

今天鄙人照着马士兵老师的hibernate视频配置相应的hibernate的开发环境,但是在测试的时候虽然通过了,但是报了两个错误: com.mysql.jdbc.exceptions.jdbc4....
  • u014028392
  • u014028392
  • 2015年03月29日 18:45
  • 1117

DatabaseMetaData获取数据库信息 .

import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java...
  • wenzhihui_2010
  • wenzhihui_2010
  • 2013年05月31日 16:48
  • 1785

hibernate中元数据ClassMetadata用法及原理

hibernate通过ClassMetadata接口来访问元数据, ClassMetadata cm = sessionfactory.getClassMetadata(类名.class),Clas...
  • William_Han1989
  • William_Han1989
  • 2017年12月27日 14:59
  • 23

Hibernate使用之快速开始

以例子来引导快速使用Hibernate
  • heiantianshi1
  • heiantianshi1
  • 2015年09月09日 10:04
  • 4002

Hibernate学习篇08——onetomany外键非空约束

从前两篇的文章中可以发现表结构中Customer table的customer_id这个字段没有加上非空约束,实际项目中是会有这个约束的。 但是加上这个约束会出现一个问题,大家可以测试下,就拿上两篇的...
  • zhengliusu
  • zhengliusu
  • 2016年03月12日 01:16
  • 1345

DatabaseMetaData获取数据库信息 .

import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java...
  • wenzhihui_2010
  • wenzhihui_2010
  • 2013年05月31日 16:48
  • 1785
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DatabaseMetaData使用(读hibernate源代码)
举报原因:
原因补充:

(最多只允许输入30个字)