今天终于了解到了SSH在DAO和ACTION中又分出业务逻辑层的重要性,想想以前写的一些代码
都是直接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久以前就看到人这样写,但是一直不理解,原来实践应用才能真正的体会到,惭愧中.............
  • E6f13c46-b14e-39b4-8d8a-3c2ffafac661-thumb
  • 描述: 在网上找到的分解方法
  • 大小: 12.3 KB
评论
发表评论

您还没有登录,请登录后发表评论

不是流氓
搜索本博客
最近加入圈子
存档
最新评论