您当前的位置: 首页 >  hibernate

宝哥大数据

暂无认证

  • 2浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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会产生相互嵌套, 导致问题。

这里写图片描述

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.2299s