JDBC的元数据
DatabaseMetaData是描述数据库的元数据对象。
可以由Connection得到
@Test
public void test1(){
Connection conn = null;
ResultSet resultSet = null;
try {
conn = Methods.getConnection();
DatabaseMetaData databaseMetaData = conn.getMetaData();
//得到数据库的基本信息
//1.得到数据库的版本号
int version = databaseMetaData.getDatabaseMajorVersion();
System.out.println(version);
//2.得到数据库的用户名
String user = databaseMetaData.getUserName();
System.out.println(user);
//3.mysql有哪些数据库
resultSet = databaseMetaData.getCatalogs();
while(resultSet.next()){
System.out.println(resultSet.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
Methods.release(null,conn,resultSet);
}
ResultSetMetaData是描述结果集的元数据。
可以得到结果集中的基本信息:结果集中有哪些列,列名,列的别名等。
@Test
public void test2(){
Connection conn = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String sql = "select * from student";
try {
preparedStatement = conn.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
//1.得到ResultSetMetaData对象
ResultSetMetaData rsmd = resultSet.getMetaData();
//2.得到列的个数
int columnCount = rsmd.getColumnCount();
for (int i = 0; i < columnCount; i++) {
//3.得到列名
String columnName = rsmd.getColumnName(i+1);
System.out.println(columnName);
String columnLabel = rsmd.getColumnLabel(i+1);
System.out.println(columnLabel);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
}
}