锁定老帖子 主题:业务层代码复用的一点建议
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-29
楼主,我服了你了,你的方法命名居然和我们公司的一样
Pager<T> findBySQL(final int pageNo, final int pageSize, final String sqlString, final Object... values); Pager<T> findByHQL(final String hql, final Object... values); |
|
返回顶楼 | |
发表时间:2010-07-29
把接口IBaseDao设计成泛型不是更好吗?
|
|
返回顶楼 | |
发表时间:2010-07-29
mercyblitz 写道 把接口IBaseDao设计成泛型不是更好吗? 当然可以了 |
|
返回顶楼 | |
发表时间:2010-07-29
skzr.org 写道 我自己就是这样做的,本着dao只做存储的思想
一个service对应N个dao public interface IBaseDao { void saveOrUpdate(Object entity); @SuppressWarnings("unchecked") void saveOrUpdateAll(Collection entities); void delete(Object entity); <T> List<T> loadAll(Class<T> entityClass); <T> T get(Class<T> entityClass, Serializable id); } 实现: public class BaseDaoHibernateImpl extends HibernateDaoSupport implements IBaseDao { @Autowired public final void setupSessionFactory(SessionFactory sessionFactory) { setSessionFactory(sessionFactory); } @Override public void saveOrUpdate(Object entity) { getHibernateTemplate().saveOrUpdate(entity); } @Override @SuppressWarnings("unchecked") public void saveOrUpdateAll(Collection entities) { getHibernateTemplate().saveOrUpdateAll(entities); } @Override public void delete(Object entity) { getHibernateTemplate().delete(entity); } @Override public <T> List<T> loadAll(Class<T> entityClass) { return getHibernateTemplate().loadAll(entityClass); } @Override public <T> T get(Class<T> entityClass, Serializable id) { return getHibernateTemplate().get(entityClass, id); } } 恩 不错的 |
|
返回顶楼 | |
发表时间:2010-07-29
从重构的角度来说 代码量越少越好 从可读性来讲是层次分明 清晰越好 权权平衡 两者都是可取的 我认为
|
|
返回顶楼 | |
发表时间:2010-07-29
冬天冷穿马甲 写道 maozj 写道 从重构的角度来说 代码量越少越好 从可读性来讲是层次分明 清晰越好 权权平衡 两者都是可取的 我认为
楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐 风宋骨发扬得入木三分,能在有生之年看见楼主的这张帖子,实在是我三生之幸 啊。 看完楼主的这张帖子之后,我竟感生出一种无以名之的悲痛感?啊,这么好的 帖子,如果将来我再也看不到了,那我该怎么办?那我改怎么办?直到我毫不犹豫 的把搂主的这张帖子收-藏-了,我内心的那种激动才逐渐平复下来。可是我立刻想 到,这么好的帖子,倘若别人看不到,那不是浪费楼主的心血吗? 经过痛苦的思想 斗争,我终于下定决心,我要把这张帖子一直往上顶,往上顶!顶到所有人都看到 为止! 不好意思·这不是百度贴吧,呵呵 |
|
返回顶楼 | |
发表时间:2010-07-29
基础表dao都类似这样
![]() public class SuserHibernateDao extends GenericHibernateDao<Suser,java.lang.Integer> implements ISuserDao { } 一行代码都不用写... |
|
返回顶楼 | |
发表时间:2010-07-30
xiaobao0501 写道 基础表dao都类似这样
![]() public class SuserHibernateDao extends GenericHibernateDao<Suser,java.lang.Integer> implements ISuserDao { } 一行代码都不用写... ![]() |
|
返回顶楼 | |
发表时间:2010-07-30
gstarwd 写道 xiaobao0501 写道 基础表dao都类似这样
![]() public class SuserHibernateDao extends GenericHibernateDao<Suser,java.lang.Integer> implements ISuserDao { } 一行代码都不用写... ![]() 不过却产生了N多的DAO 我一般模块内表不多时,只有一个DAO就可以了 如果模块内表数量膨胀到5个以上,才会考虑是不是要使用多个dao! |
|
返回顶楼 | |
发表时间:2010-07-30
dao层还是根据表来建吧.具体如何组合是service层的事.
![]() |
|
返回顶楼 | |