resultsetmetadata
1先利用sql语句进行查询2利用反射创建实体类 的对象emp
3获取结果集的列名
4获取结果集的每一列的值,结合3得到一个Map,键是列名,值的值
5利用反射为2对应的属性赋值,属性为Map的键值为map的值
/**
* 打印出列的名称+和相对应的字段
* 1.String sql="select name,id from emp";
getEmp(sql, args);
2.String sql="select name,id from emp where id=?";
getEmp(sql, 1);
* ResultSetMetaData
* @param sql
* @param objects
* @return
*/
public static Emp getEmp(String sql,Object...objects)
{
Emp emp=null;
Connection conn=null;
Preparedstatement ps=null;
ResultSet rs=null;
conn=JdbcUtil.getConn();
try {
ps=conn.preparestatement(sql);
//可以拿出来写一个方法,直接调用
for(int i=0;i<objects.length;i++)
{
ps.setObject(i+1, objects[i]);
}
rs=ps.executequery();
//1.得到ResultSetMetaData
ResultSetMetaData rsmd=rs.getMetaData();
//4.获取结果集的每一列的值,结合3得到一个Map,键是列名,值的值
Map<String,Object> map=new HashMap<String,Object>();
while(rs.next())
{
//2.打印每一列名
for(int i=0;i<rsmd.getColumnCount();i++)
{
String columnLabel=rsmd.getColumnLabel(i+1);
Object columnValue=rs.getObject(columnLabel);
map.put(columnLabel, columnValue);
}
System.out.println("刘瑞光添加到map集合中的键和值:"+map);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printstacktrace();
}
finally {
JdbcUtil.closeConn(rs, null, ps, ps, conn);
}
return emp;
}
相关阅读
ResultSetMetaData 、DatabaseMetaData中的方法介绍利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而ResultSetMeta
今天写页面的时候,发生了离奇的错误,明明语句在数据库中执行能查出6个字段,但是返回数据时只剩5个了,检查了好多遍代码,终于发现Result