以太坊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來完成資料庫的訪問。