200分求助--使用反射机制将ResultSet对象转换后传给jsp!

725137 2006-02-26 07:20:27
我知道ResultSet不能直接传给jsp页面.需要进行转换.
可转成List Iterator对象等.
我现在想实现一个通用的转换类.
这个类接收两个参数.
RestoObj("javabean的文件名",resultset实例);

声明方法像这样
public List resToObj(String beanname,ResultSet rs)
{
}

利用反射机制.能知道任意一个javabean里面的方法.并可调用其方法.所以我想实现这样的通用类.随便给出一个标准格式的javabean,他能自动分析javabean里面的方法.然后调用其方法将rs值读出来.然后放到一个list返回..

我就是不知道如何调用其方法.不知道函数怎么写?
能给出一个完整的类.200分相送.不够再加
给出一个调用其方法执行的代码写法给100分.
如我在类A中想调用类B中的setName();方法. 怎么写?
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
725137 2006-02-27
  • 打赏
  • 举报
回复
晕。怎么没人
剑事 2006-02-27
  • 打赏
  • 举报
回复
用list HashMap 方便的多
反射 + javabean 还是省点力气干别的吧
li_d_s 2006-02-27
  • 打赏
  • 举报
回复
那还不得自己写个文件来配置那个字段对应到javabean的哪个属性?。。。如此下去,就自己做了个hibernate出来了,楼主强人
725137 2006-02-27
  • 打赏
  • 举报
回复
谢过.看了你的代码深受启发..终于搞定了..不过我没用invode方法.我用的是Filed的set方法 .invoke方法太麻烦了.
treeroot 2006-02-27
  • 打赏
  • 举报
回复
return ret!!
treeroot 2006-02-27
  • 打赏
  • 举报
回复
public static List getWriters(Class bean) {
Method[] ms = bean.getMethods();
List list = new ArrayList();
for (int i = 0; i < ms.length; i++) {
if (ms[i].getName().startsWith("set")
&& ms[i].getParameterTypes().length == 1
&& ms[i].getReturnType() == void.class) {
list.add(ms[i]);
}
}
return list;
}
public static String getPropertyName(Method propertyMethod) {
String ret;
String mName = propertyMethod.getName();
if (mName.startsWith("get") || mName.startsWith("set")) {
ret = mName.substring(3, 4).toLowerCase() + mName.substring(4);
} else if (mName.startsWith("is")) {
ret = mName.substring(2, 3).toLowerCase() + mName.substring(3);
} else {
throw new RuntimeException("Not a getter/setter Method!");
}
return ret;
}

public List resToObj(String beanname,ResultSet rs) throws Exception
{
Class bean=Class.forName(beanname);
List writers=getWriters(bean);
List ret=new ArrayList();
while(rs.next()){
Object obj=bean.newInstance();
for(int i=0;i<wirters.size();i++){
Method m=(Method)writers.get(i);
String pro=getProperty(m);
Object value=rs.getObject(pro); //这里没有考虑类型转换
m.invoke(obj,new Object[]{value});
}
ret.add(obj);
}

}
吐司vivi 2006-02-27
  • 打赏
  • 举报
回复
想法不错 支持

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧