java里HibernateCallback()是干什么用的
网上说是什么hibernate的复杂使用,可还是没看懂
什么情况下用HibernateCallback()?
java里HibernateCallback()是干什么用的
答案:3 悬赏:40 手机版
解决时间 2021-02-22 06:46
- 提问者网友:伴风望海
- 2021-02-21 13:28
最佳答案
- 五星知识达人网友:猎心人
- 2021-02-21 14:43
HibernateCallback()是一个回调方法,在hibernate框架下,对数据库的一种操作,其实它使用很简单的,用这个方法是为了方便,为了创建session,须要在回调方法里比如:
public List selectList(final int startPage, final int endPage) {
List list = new ArrayList();
final String hql = "from Item order by id desc";
list = this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);//创建SESSION
query.setFirstResult(startPage);//分页设置
query.setMaxResults(endPage);
List list = query.list();获取结果结晶
return list;//返回值
}
});
return list;
}
public List selectList(final int startPage, final int endPage) {
List list = new ArrayList();
final String hql = "from Item order by id desc";
list = this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);//创建SESSION
query.setFirstResult(startPage);//分页设置
query.setMaxResults(endPage);
List list = query.list();获取结果结晶
return list;//返回值
}
});
return list;
}
全部回答
- 1楼网友:舍身薄凉客
- 2021-02-21 16:18
HibernateCallback实例可在任何有效的Hibernate数据访问中使用。
程序开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决Spring封装Hibernate后灵活性不足的缺陷。
HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session),
该方法只有一个参数Session。通常,程序中采用实现HibernateCallback的匿名内部类来获取HibernateCallback的实例。
- 2楼网友:等灯
- 2021-02-21 15:11
public list finduserinfolist(final string orderby, final string ascordesc, final int firstresult, final int maxresults) { return gethibernatetemplate().executefind(new hibernatecallback() { public object doinhibernate(session s) throws hibernateexception, sqlexception { string q = "from userinfo order by " + orderby + " " + ascordesc; query query = s.createquery(q); query.setfirstresult(firstresult); query.setmaxresults(maxresults); list list = query.list(); return list; } }); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯