2008-07-04
spring struts hibernate分层理解
今天终于了解到了SSH在DAO和ACTION中又分出业务逻辑层的重要性,想想以前写的一些代码
都是直接struts action里面直接使用spring注入的DAO层接口,直接省略掉了业务逻辑层,好像没出现过什么问题
但是现在问题来了,使用hibernate查询数据库中的记录,数据库是这样的
第一张表中有很多mess_msg相同的记录,status是状态信息(分三种0,1,2)
第二章表中的mess_msg对应的是第一张表中每条记录的收费情况,cost是第一张表记录的价格(根据status分)
直接拿HQL查询
这样查出来的是所有的信息,如果直接在action中实现,根据status统计计费,三个action中添加很多代码
而且还要接收前台传来的数据,痛苦.............
这里就用到了业务逻辑层了,也许在action层也能直接实现,相信那会是action层的代码很臃肿
在业务逻辑层定义三个方法method0,method1,method2,去处理三个状态的计费情况,在action里面注入service层的接口,
呵呵,这样就显得很宽松了
N久以前就看到人这样写,但是一直不理解,原来实践应用才能真正的体会到,惭愧中.............
都是直接struts action里面直接使用spring注入的DAO层接口,直接省略掉了业务逻辑层,好像没出现过什么问题
但是现在问题来了,使用hibernate查询数据库中的记录,数据库是这样的
create table received_message( id bigint not null auto_increment, ... mess_msg varchar(256), status varchar(20), primary key(id) ); create table sms_cost( id bigint not null auto_increment, mess_msg varchar(128) not null, cost float not null, ... primary key(id) );
第一张表中有很多mess_msg相同的记录,status是状态信息(分三种0,1,2)
第二章表中的mess_msg对应的是第一张表中每条记录的收费情况,cost是第一张表记录的价格(根据status分)
直接拿HQL查询
select m.messMsg as name,s.cost as cost,count(m.messMsg) as count from ReceivedMessage m,SmsCost s where m.messMsg like s.message and m.party.id=:party and rece_date between :begin and :end group by m.messMsg
这样查出来的是所有的信息,如果直接在action中实现,根据status统计计费,三个action中添加很多代码
而且还要接收前台传来的数据,痛苦.............
这里就用到了业务逻辑层了,也许在action层也能直接实现,相信那会是action层的代码很臃肿
在业务逻辑层定义三个方法method0,method1,method2,去处理三个状态的计费情况,在action里面注入service层的接口,
呵呵,这样就显得很宽松了
N久以前就看到人这样写,但是一直不理解,原来实践应用才能真正的体会到,惭愧中.............
发表评论
- 浏览: 3100 次
- 性别:

- 来自: 天津

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
各位,帮看看简历,在北京 ...
我和LZ差不多。很多地方比LZ差。不过也在北京找到了工作。。只是工资很低。。
-- by cc0128 -
各位,帮看看简历,在北京 ...
grave 写道差不多也就一普通毕业生简历,不过写的比较诚恳。这样的简历在北京能 ...
-- by 不是流氓 -
各位,帮看看简历,在北京 ...
差不多也就一普通毕业生简历,不过写的比较诚恳。
-- by grave -
hibernate查找重复列,并 ...
对啊,我开始也是查distinct,我日,那个不总是搞不定,就 group by ...
-- by 不是流氓 -
hibernate查找重复列,并 ...
果然是用group by,lz应该写清楚用了什么方法。
-- by spiritfrog






评论排行榜