元数据指用来描述数据的含义的一些信息;
jdbc为我们提供了多种元数据,主要包括:
表示数据库连接的元数据;
DatabaseMetaData ; conn.getMetaData();
表示结果集的元数据;
ResultSetMetaData result.getMetaData();
方法有:
getColumnCount():获得结果集的列数;
getColumnLabel():获得列名
getColumnType():获得列的数据类型;
对元数据操作的事例:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class Metadata {
public static void main(String[] args) throws SQLException {
printResult("select count(*) c from book");
printResult("select bookname bn,price,author from book");
}
public static void printResult(String sql) throws SQLException {
Connection conn=JdbcUtil.getConnection();
//获得ResultSet
try(Statement st=conn.createStatement();
ResultSet rs=st.executeQuery(sql);){
//获得结果集的列数
ResultSetMetaData rmd=rs.getMetaData();
int count=rmd.getColumnCount();
System.out.println(sql+" 列数为:"+count);
/*for(int i=1;i<=count;i++) {
System.out.println(rmd.getColumnLabel(i));//显示的是给定的别名
System.out.println(rmd.getColumnName(i));//显示的是原来的列名
System.out.println(rmd.getColumnTypeName(i));//显示数据类型
System.out.println(rmd.getColumnType(i));//显示的当前数据类型对应的数字
}
*/
while(rs.next()) {
for(int i=1;i<=count;i++)
System.out.print(rs.getObject(i)+"\t");
System.out.println();
}
}
catch(SQLException e) {
e.printStackTrace();
}
}
}
其中:
System.out.println(rmd.getColumnLabel(i));//显示的是给定的别名
System.out.println(rmd.getColumnName(i));//显示的是原来的列名