元数据
在jdbc中获取数据库的定义,例如:数据库,表,列的定义信息。就用到元数据
在jdbc中可以使用:数据库元数据,参数元数据,结果集元数据。
方法:
getDatabaseProductName:获取数据库的产品名称
getDatabaseProductName:获取数据库的版本号
getUserName:获取数据库的用户名
getURL:获取数据库连接的URL
getDriverName:获取数据库的驱动名称
driverVersion:获取数据库的驱动版本号
isReadOnly:查看数据库是否只允许读操作
supportsTransactions:查看数据库是否支持事务
驱动包下载:百度云链接:http://pan.baidu.com/s/1sl56QWd 密码:b2gh
-
1.获取数据库元数据
@Test
public void testDatabase() throws Exception {
// 获取连接
Connection conn = JdbcUtil.getConnection();
// 获取数据库元数据
DatabaseMetaData metaData = conn.getMetaData();
System.out.println(metaData.getUserName());
System.out.println(metaData.getURL());
System.out.println(metaData.getDatabaseProductName());
System.out.println(metaData.getDatabaseProductVersion());
}

-
2.获取参数元数据
@Test
public void test2() throws Exception {
// 获取连接
Connection conn = JdbcUtil.getConnection();
String sql = "select * from eu_tronclass where id=? and eu_rj=? and tron_month=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
// 参数元数据
ParameterMetaData p_metaDate = pstmt.getParameterMetaData();
int count = p_metaDate.getParameterCount();
System.out.println(count);
}

image.png
-
3. 获取结果集元数据
@Test
public void testRs() throws Exception {
String sql = "select * from eu_tronclass ";
// 获取连接
Connection conn = JdbcUtil.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
// 得到结果集元数据
//目标:通过结果集元数据,得到列的名称
ResultSetMetaData rs_metaData = rs.getMetaData();
while (rs.next()) {
int count = rs_metaData.getColumnCount();
for (int i=0; i<count; i++) {
// 得到列的名称
String columnName = rs_metaData.getColumnName(i + 1);
// 获取每一行的每一列的值
Object columnValue = rs.getObject(columnName);
System.out.print(columnName + "=" + columnValue + ",\n");
}
}
}

获取结果集元数据
