如何不用sql直接创建一个ResultSet,然后把CMP返回的Collection放入ResultSet中?

在采用jsp+ejb的开发模式中,CMP返回的结果集好象都是Collection,现在发现:当我们要删除、增加表中的字段或者更改表中的字段前后秩序时,我们除了要修改EJB的程序代码之外,由于collection发生了变动,还要大量修改JSP中的代码。
最新的思路是:在JSP中直接通过调用象ResultSet或RowSet中的getString("FieldName")方法;这样就避免了定位取值的问题。这样做需要解决以下两个问题:
第一,如何直接创建一个ResultSet,而不通过执行sql获得;
第二,如何手工向ResultSetMetaData中设置字段名、字段类型、字段个数等数据,好象ResultSet(或ResultSetMetaData)中没有这样的方法。
请各位高手指点。

使用seesion bean 的facade模式可以解决这个问题,如果数据库结构变动,使得系统修改不至于有太大变化

seesion bean的facade模式如何使用?能详细叙述一下吗?最好能给个例子,谢谢!