以太坊daosupport
A. hibernate_jpa 中的EntityManager ,JpaDaoSupport ,HibernateDaoSupport 各有什么区别,优缺点是什么。
区别是这样的:EntityManager 用于注解实体类 JpaDaoSupport 跨数据库 HibernateDaoSupport 不夸数据库!!优缺点 按照所理解的 就可以知道优缺点了啊
B. Spring中让DAO层继承HibernateDaoSupport为什么不常用
因为如果使用继承关系的话,耦合度比较高,也就是说不够优化,并且没办法是先spring的注入,所以现在一般用的比较少。
层现在一般都是通过hql语言,更方便一些。
举例:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno
like " '%"+OId+"%'").list();
[sql] view plainprint?
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();
C. HibernateDaoSupport DAO层封装的多条件查询问题。
参考下我的代码吧 后面加上order by sfmc就可以了
首先要把多条件放到一个数组中
再调用hibernateDAOSupport中的方法
public Critique fingCritique(int AId, Date date) {
Object values[] = new Object[]{AId,date};
List critiqueFind = this.getHibernateTemplate().find("select cri from Critique cri where cri.AId = ? AND cri.date = ?", values);
if(!critiqueFind.isEmpty()){
return (Critique)critiqueFind.get(0);
}else{
return null;
}
}
D. HibernateDaoSupport类需要用到哪个JAR包
需要导入spring-orm.jar
E. 的实现类support的子类为什么还要实现继承的接口,这样有什么好处
是data access object,数据访问对象。因为你数据是保存到数据库里的,而数据库有那么多,他们实现有差异,这样设计就可以针对不同数据库,有不同的实现。将来扩展容易。
F. DAO类从SqlMapClientDaoSupport继承,这两个方法有什么区别
很多方法啊,可以用hibernate帮你封装好的方法,也可以用jdbc,最简单粗暴的方法Connectioncon=session.connection();在这里你获得了conn,然后jdbc你就会用喽,当然你要先获得session在hibernate里面我想session获得还是不难的
G. HibernateDaoSupport中的方法
1、/**
* 删除记录
* @param entity BO的对象
* <pre>
* this.getHibernateTemplate().delete(entity);
* 按照规范,调用ECLRecordDelete记录删除的BO信息;
* </pre>
*/
public void delete(Object entity){
this.getHibernateTemplate().delete(entity);
}
2、 /**
* 通过id获得记录
* @param Class entityClass,对象类型
* @param Serializable id,BO的id值
* <pre>
* return hibernateTemplate.get(entityClass,id);
* </pre>
*/
public Object findById(Class entityClass, Serializable id) {
return this.getHibernateTemplate().get(entityClass,id);
}
3、/**
* 获得延迟加载数据
* @param Object object,需要加载的对象
* <pre>
* Hibernate.initialize(object);
* </pre>
*/
public void getLazyData(Object object) {
this.getHibernateTemplate().initialize(object);
}
H. 如何在DAO层既使用注解又使用HibernateDaoSupport
HibernateDaoSupport类是Spring为Hibernate的DAO提供的工具类。该类主要提供如下两个方法,方便DAO的实现:
1、public final HibernateTemplate getHibernateTemplate()
2、public final void setSessionFactory(SessionFactory sessionFactory)
其中,setSessionFactory方法用来接收Spring的ApplicationContext的依赖注入,可接收配置在Spring的SessionFactory实例,getHibernateTemplate方法则用来根据刚才的SessionFactory产生Session,最后生成HibernateTemplate来完成数据库的访问。