Spring中让DAO层继承HibernateDaoSupport为什么不常用?
4个回答
展开全部
因为如果使用继承关系的话,耦合度比较高,也就是说不够优化,并且没办法是先spring的注入,所以现在一般用的比较少。
dao层现在一般都是通过hql语言,更方便一些。
举例:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno
like " '%"+OId+"%'").list();
[sql] view plaincopyprint?
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();
dao层现在一般都是通过hql语言,更方便一些。
举例:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno
like " '%"+OId+"%'").list();
[sql] view plaincopyprint?
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();
展开全部
继承HibernateDaoSupport是可以的,但这种方式还是不太好,还是用到了继承,也就是没有降低所谓的耦合度。
解决方案:
1、spring为我们提供了一个hibernateTemplate,你只需在配置文件中配置一个bean,并传入一个sessionFactory。
2、然后在使用dao的时候注入该hibernateTemplate的bean即可。
解决方案:
1、spring为我们提供了一个hibernateTemplate,你只需在配置文件中配置一个bean,并传入一个sessionFactory。
2、然后在使用dao的时候注入该hibernateTemplate的bean即可。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有为什么不常用,只有符合业务就行,看自己的需求定,你也可以自己创建数据库连接,这样的话,你得管理数据库连接问题,这样的后果是如果你自己开的连接没有关闭就导致程序快速出现问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不记得了,应该是线程安全问题。你查一下文档就清楚了。我也不太确定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询