元数据:用来描述数据的数据,包括数据的列名,类型,列的数量等
ResultSetMetaData接口,用来存储记录的元数据
常用的方法
rsmd.getColumnTypeName(i)获得第i列的类型
rsmd.getColumnName(i)获得第i列的列名
rsmd.getTableName(i)获得表名
rsmd.getColumnLabel(i)获得第i列的别名,没有别名的显示列名
代码示例
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class MetaDate {
public static void main(String[] args) {
executeSql("select * from book");
}
public static void executeSql(String sql) {
Connection conn=DbUtil.getConnection();
Statement st=null;
ResultSet rs=null;
try {
st=conn.createStatement();
rs=st.executeQuery(sql);
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount();//获得列的总数
for(int i=1;i<=count;i++) {
System.out.print(i+":"+rsmd.getColumnTypeName(i));//获得每一列的类型
System.out.print("\t"+rsmd.getColumnName(i));//获得每一列的列名
System.out.print("\t"+rsmd.getTableName(i));//获得表名
System.out.println("\t"+rsmd.getColumnLabel(i));//获得列的别名,没有别名则为列名
System.out.println();
}
}catch(Exception e) {
e.printStackTrace();
}finally {
DbUtil.close(st);
DbUtil.close(rs);
DbUtil.close(conn);
}
}
}
运行结果
1:INT bookid book bookid
2:VARCHAR bookname book bookname
3:MEDIUMBLOB pic book pic