DatabaseMetaData使用(读hibernate源代码)

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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值