`
I_am_kevin
  • 浏览: 142781 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

服务层的数据操作

阅读更多

服务层中,处理所有的业务逻辑,调用封装好的Dao;

1.在服务层,我们可以注入任何我们需要的接口;

2.在服务层中,我们可以创建任何我们在action中需要调用的方法;

3.在服务层中,我们可以对于所有可能出错的地方,进行判断,屏将异常向上抛出,注意不是处理异常;

4.在服务层中,如果可以的话,我们可以定义日志对象,每一步的操作,都设置到Logger中去;

5.在服务层,每一个服务层,我们尽量使用面向接口编程的思想;

6.在服务层,对于事务的处理,是我们在配置文件中进行的处理;

-----------------------------------------

 

 

添加数据时的考虑:

1.       确定对象的某个属性,是否在数据库中已经存在?方可进行添加操作

2.       注意添加数据对象时,对于字符串类型的对象属性,要是用trim()清空左右空格,方可执行步骤一中所述;

3.       如果添加的数据对象中含有两个日期字段,则在添加过程中,必须判断两个日期的大小,否则不能添加成功;

 

删除数据时的考虑:

1.       确定该对象的主键是否在其它的表中存在外键引用?从而决定采用彻底删除(级联删除)还是删除外键的提醒;

2.       该删除的操作,是真正的从数据库中删除数据,还是在数据库中的某列进行删除标示

 

更新数据时的考虑:

1.       数据的更新,如果在数据表中存在设定日期列,则判定是否该列已经进行当前日期的设定;

2.       是否进行级联更新操作

 

查询数据时的考虑:

1.       注意查询的条件和分页的实现;

2.       如果根据指定的日期时间段查询则应进行如下设定:

       if(newsTypeId!=null&&newsTypeId!=0){

           detachedCriteria.add(Restrictions.eq("newsTypeId", newsTypeId));

       }

       if(begin_time!=null && !begin_time.equals("")){

           detachedCriteria.add(Restrictions.ge("newsAddTime", begin_time));

       }

       if(end_time!=null && !end_time.equals("")){

           detachedCriteria.add(Restrictions.le("newsAddTime", end_time));

       }

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics