相信使用過Spring + Hibernate開發過的人
getHibernateTemplate()
這樣一句話在我們沒有Spring的時候就必須使用如下的代碼才能完成
Session session = HibernateUtil
Transaction tx = session
session
mit();
lseSession();
這裡還省去了異常處理
但是我們在使用Hibernate的時候不一定會使用Spring
package kick
import net
import net
import net
public class HibernateTemplate{
public static Object run(HibernateCallback callback) throws HibernateException{
Session session = null;
Transaction tx = null;
try {
session = HibernateSessionutil
tx = session
Object result = callback
mit();
session
return result;
} catch (HibernateException e) {
tx
return null;
} finally {
HibernateSessionutil
}
}
這裡類很簡單
package kick
import net
import net
public interface HibernateCallBack {
Object execute(Session session)throws HibernateException;
}
好了
HibernateTemplate
public Object execute(Session session) throws HibernateException {
session
return null;
}
});
看看
不過這還沒有達到想Spring裡面那樣簡單
從上面的代碼可以看出
package kick
import java
import net
import net
public class HibernateSupport{
public Object save(final Object object) throws HibernateException{
return HibernateTemplate
public Object execute(Session session) throws HibernateException {
session
return null;
}
});
}
public Object save(final Object object
return HibernateTemplate
public Object execute() throws HibernateException {
session
return null;
}
});
}
public Object saveOrUpdate(final Object object) throws HibernateException{
return HibernateTemplate
public Object execute(Session session) throws HibernateException {
session
return null;
}
});
}
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
調用一些其他的session的方法
}
該類為抽象類
package kick
import net
import kick
public abstract class RootDao {
private HibernateSupport temp = null;
/**
* @return Returns the temp
*/
public HibernateTemplateImpl getHibernateTemplate(Session session) {
return new HibernateSupport();
}
}
定義一個自己的DAO類
public class UserDaoImpl extends RootDao implements UserDaoInterface{
public void saveUser(User user) throws KickException {
getHibernateTemplate()
}
……………………………………………………………………………………
實現其他的方法
……………………………………………………………………………………
}
看到沒有?紅色的代碼
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28277.html