使用Hibernate3.2的问题(4)

dom4j的问题解决不了,1.6版本的Element.class,Node.class 的detach()方法需要返回值,而我们以前用的1.0版本返回void(这是发现的,还有没发现的呢)。暂时进展不下去了,只能改变方案了。

我现在这个功能模块的分层是这样的:

才发现没有画图功能。

struts上层,向下传递xml

sessionbean接收xml,进行解析,只调用单一业务方法,不包含hiber事务

业务方法接口,操作持久化层,包含hiber事务

hibernate持久化层(hiberantesync自动生成的BaseJavaBean和JavaBean)

数据库

现在不能使用hibernate了,最好的方案是:只改动业务方法接口,剔除掉hibernate的代码,替换成jdbc,对上是透明的(接口的好处),对下是标准的javabean没有hibernate代码(hibernate的弱侵入性)。

只是需要重新建立数据库连接池、自己实现持久性(将javabean的属性set/get,然后进行相应的数据库sql编写)、没有了hibernate还有自己处理clob字段。

方案感觉可行,不知道效果怎么样,干吧!

=========================================

经过了1天的奋战,ok了,换成了jdbc的实现。还好涉及的表不多(3张表),不然自己写持久化代码,真的是枯燥死了,更加坚定了采用新技术的信念。

========================================

这两天看了看struts,发现了业务方法接口(业务代理接口)的便捷,上个重构是改动持久层对业务层屏蔽(业务层调用的是接口而不是具体实现,通过工厂方法读取配置文件来切换实现,),如果我上层从ejb换成struts直接调用,持久层也是不用改动的,在struts的Action类里通过工厂方法得到接口的实现操作持久层。

 



你可能感兴趣的:(sql,Hibernate,struts,jdbc,ejb)