JSP中ResultSet接收值问题

按常理来,我们都知道接收数据库中的值都是这样ResultSetrs=*****ArrayList<shiTi>arlist=newArrayList<shiTi>();w... 按常理来,我们都知道接收 数据库中的值都是这样
ResultSet rs=*****
ArrayList<shiTi> arlist = new ArrayList<shiTi>();
while (rs.next()) {
entity shiTi = new entity ();
shiTi .set_Id(rs.getInt("id"));
shiTi.set_UserName(rs.getString("userNamer"));
shiTi.set_Nr(rs.getString("nr"));
arlist.add(shiTi);
}
这样返回 一个实体的数据集 到上一层 处理。
但是,假如 我都不知道这个实体都有什么属性,表中我也不知道有什么字段。
用 shiTi .set_Id(rs.getInt("id"));
1 set_id 我不知道。
2 rs.getInt("id") id字段 我也不知道或是 不考虑 数据类型也是

那我怎么把那个 rs 循环放到 ArrayList数据集中?或是其他的方法?

我听说有一个方法 能获取 rs中的 字段集合。但是 我看了JDK 没找到。
原理就是 取出先 取出rs中的 字段 集合。通过 这个集合 得出长度。用for循环 取出 rs中的数据 存到ArrayList中。

请问 各位高手有没有人这样做过。或者 知道那个获取 字段集合的方法来。
高分追加 请问。
我用的环境是 MyEclipse7.0 。
展开
 我来答
撒白风05F
2009-06-19 · TA获得超过1010个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:514万
展开全部
//传入你的ResultSet
public static void printRS(ResultSet rs) throws SQLException
{
//检索此 ResultSet 对象的列的编号、类型和属性。
ResultSetMetaData rsmd = rs.getMetaData();
//得到当前的列数
int colCount = rsmd.getColumnCount();
while(rs.next()) { //while控制行数
for(int i = 1; i <= colCount; i++ ) {//for循环控制列数
if(i > 1) {
System.out.print(",");
}
//得到当前列的列名
String name = rsmd.getColumnName(i);
//得到当前列的值
String value = rs.getString(i);
System.out.print(name + "=" + value);
} System.out.println();
}
}
百度网友f9b137a8c
2009-06-19 · 超过32用户采纳过TA的回答
知道答主
回答量:167
采纳率:0%
帮助的人:96万
展开全部
你要写工具?看你的代码感觉你还写不了这个,建议你看看hibernate的源代码,你想做的它都已经做了。
顺便说一下,运行时你一定知道entity的属性,所以这里用反射取得所有属性,再判断数据类型,根据这个属性的名字推算数据库字段的名字(或使用配置文件映射),最后赋值。说的简单,实现起来挺麻烦,还是用现成的工具吧,明白原理就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tech_java
2009-06-19 · TA获得超过567个赞
知道小有建树答主
回答量:186
采纳率:100%
帮助的人:0
展开全部
try
{
ResultSet resultSet = null;
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
int cols = resultSetMetaData.getColumnCount();// 返回值多少列
for(int i = 0 ; i <cols; i++)
{
resultSetMetaData.getColumnName(i);//列名
resultSetMetaData.getColumnType(i);//列的类型
}
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式