您当前的位置: 首页 >  宝哥大数据 hibernate

Spring集成Hibernate5_04-Service层

宝哥大数据 发布时间:2017-09-05 15:49:25 ,浏览量:2

Spring集成Hibernate5 , 现在需要整合Strtus2, 这就必须考虑Service层,

分层设计,通常是分成4个层

   - viewer(页面显示)

   - servie(用来做整个项目的逻辑控制 , 对象判断)

   - dao(仅仅做数据库的基本操作)

   - data(数据库)

以前: viewer直接调用dao层

现在: 在dao层上添加一个service层,
  service 层进行异常处理, 以及判断等操作,
  dao层 什么都不做, 只完成对数据库的处理, 不做任何判断和异常处理。

二、Service层实现流程

2.1、添加Service层, 创建IUserService接口, 定义service层方法, 这些方法就是Viewer层的功能点的具体实现

package com.chb.spring_hibernate.service;

import java.util.List;

import com.chb.spring_hibernate.model.User;
/**
 * service 进行对象的操作, 异常处理, 和判断功能, 
 * service层的每个方法都是viewer层的一个功能点。
 * @author 12285
 */
public interface IUserService {
    public void add(User user, int gid);

    public void delete(int id);

    public void update(User user);

    public void load(int id);

    public List listAllDao();

    /**
     * 获取组成员
     * @param id
     * @return
     */
    public List listByGroup(int gid);
}

2.2.1 实现IUserService, service的注解为@Service

@Service   //为Spring所管理
public class UserService implements IUserService

2.2.2 service层通过Dao层进行数据库操作, 所以需要注入UserHibernateDao

//UserService通过UserDao进行数据库操作, 需要注入UserDao
    private IUserDao userHibernateDao;

    //注入UserHibernateDao
    @Resource
    public void setUserHibernateDao(IUserDao userHibernateDao) {
        this.userHibernateDao = userHibernateDao;
    }

    public IUserDao getUserHibernateDao() {
        return userHibernateDao;
    }

2.2.3、UserDao中的特殊方法放在service层操作,

2.2.4、实现add(User user, int gid), 需要判断, gid的组是否存在, 所以需要注入GroupHibernateDao,

2.3、GroupService 实现,
  在删除一个Group, 如果删除的组中有关联用户, 将删除失败, 所以需要判断组中是否有用户,
  但是只有在UserService中有listByGroup来获取组中用户, 但是获取的是对象, 为了效率, 可以在UserDao中提供一个方法获取gid组中用户数

2.3.1、在GoupService中通过UserDao判断组中用户

2.4 加入Service层的好处, 未加入Service层, GroupDao和UserDao会产生相互嵌套, 导致问题。

关注
打赏
查看更多评论

宝哥大数据

暂无认证

  • 2浏览

    0关注

    985博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录