A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a464538715 中级黑马   /  2013-5-30 20:24  /  3063 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    前几天在看一个项目视频,里面用到了dao层泛型重构,但是service层就没有那样,我想知道service层泛型重构怎么写,dao层我已经会了,求详细的代码,好人一生平安。这是dao层重构代码
  1. public interface BaseDao<T> {
  2.     public Collection<T> getAllEntry();

  3.     public T getEntryById(Serializable id);

  4.     public void saveEntry(T t);

  5.     public void updateEntry(T t);

  6.     public void delteEntry(Serializable id);
  7. }
复制代码
  1. public class BaseDaoImpl<T> implements BaseDao<T> {
  2.         private Class classt;
  3.         @Resource(name="hibernateTemplate")
  4.         public HibernateTemplate hibernateTemplate;

  5.         public BaseDaoImpl() {
  6.                 ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
  7.                 this.classt = (Class)type.getActualTypeArguments()[0];
  8.         }
  9.        
  10.         @Override
  11.         public Collection<T> getAllEntry() {
  12.                 return this.hibernateTemplate.find("from " + this.classt.getName());
  13.         }

  14.         @Override
  15.         public T getEntryById(Serializable id) {
  16.                 return (T) this.hibernateTemplate.get(this.classt, id);
  17.         }

  18.         @Override
  19.         public void saveEntry(T t) {
  20.                 this.hibernateTemplate.save(t);
  21.         }

  22.         @Override
  23.         public void updateEntry(T t) {
  24.                 this.hibernateTemplate.update(t);
  25.         }

  26.         @Override
  27.         public void delteEntry(Serializable id) {
  28.                 this.hibernateTemplate.delete(this.getEntryById(id));
  29.         }

  30. }
复制代码
  1. public interface DepartmentDao<T> extends BaseDao<T>{
  2. }
复制代码
  1. @Repository(value="departmentDao")
  2. public class DepartmentDaoImpl extends BaseDaoImpl<Department> implements DepartmentDao<Department> {
  3. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

5 个回复

倒序浏览

public interface Manager {

        public void insert();
                public void iupdate();
       
        public int  getById(long id);
}
       
下面再写一个实现类 和写dao层类似
       

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
这是struts2写的一个小项目 你可以参考下

src.zip

220.93 KB, 下载次数: 40

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
zZZ~~ 发表于 2013-5-30 21:01
这是struts2写的一个小项目 你可以参考下

我感觉你根本不知道我在说什么....你的代码连dao层泛型重构都没有
回复 使用道具 举报
a464538715 发表于 2013-5-30 23:30
我感觉你根本不知道我在说什么....你的代码连dao层泛型重构都没有

呵呵 对不起 没看懂你的问题 我以为你是问泛型service层怎么写
所以给你个例子
你前面dao层都写出来了 service层和dao层实现是一样的
回复 使用道具 举报
zZZ~~ 发表于 2013-5-31 08:08
呵呵 对不起 没看懂你的问题 我以为你是问泛型service层怎么写
所以给你个例子
你前面dao层都写出来了 se ...

我尝试了 但是不行 注入不成功
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马