请问Hibernate集成Spring后Session session = this.getSession();
需要session.close()吗??????我记的好想不用吧``会自动关闭?
package com.htky.dao;import java.util.Iterator;
import java.util.List;import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.htky.po.AA;
import com.htky.po.TabBill;
import com.htky.po.TabScan;
import com.ibatis.sqlmap.engine.builder.xml.XmlConverter;public class HtkyDao extends HibernateDaoSupport{
public List getAll(){
Session session = this.getSession();
Query query = session.createQuery("from TabScan a,TabBill b where a.billCode=b.billCode and a.billCode='B000001897209'");
List list = query.list();
session.close();
return list;
}
public static void main(String[] args){
ApplicationContext app = new ClassPathXmlApplicationContext("spring_ioc.xml");
HtkyDao dao = (HtkyDao)app.getBean("trackdao");
List list = dao.getAll();
Iterator it = list.iterator();
TabBill bill = null;
while(it.hasNext()){
Object[] o = (Object[]) it.next();
TabScan scan = (TabScan)o[0];
bill = (TabBill)o[1];
}
System.out.println(bill.getSignMan());
//
}
}需要关闭吗?
如果需要关闭!我如何return
需要session.close()吗??????我记的好想不用吧``会自动关闭?
package com.htky.dao;import java.util.Iterator;
import java.util.List;import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.htky.po.AA;
import com.htky.po.TabBill;
import com.htky.po.TabScan;
import com.ibatis.sqlmap.engine.builder.xml.XmlConverter;public class HtkyDao extends HibernateDaoSupport{
public List getAll(){
Session session = this.getSession();
Query query = session.createQuery("from TabScan a,TabBill b where a.billCode=b.billCode and a.billCode='B000001897209'");
List list = query.list();
session.close();
return list;
}
public static void main(String[] args){
ApplicationContext app = new ClassPathXmlApplicationContext("spring_ioc.xml");
HtkyDao dao = (HtkyDao)app.getBean("trackdao");
List list = dao.getAll();
Iterator it = list.iterator();
TabBill bill = null;
while(it.hasNext()){
Object[] o = (Object[]) it.next();
TabScan scan = (TabScan)o[0];
bill = (TabBill)o[1];
}
System.out.println(bill.getSignMan());
//
}
}需要关闭吗?
如果需要关闭!我如何return
楼主【xiaomaha】截止到2008-07-10 10:27:42的历史汇总数据(不包括此帖):
发帖的总数量:58 发帖的总分数:2374 每贴平均分数:40
回帖的总数量:144 得分贴总数量:38 回帖的得分率:26%
结贴的总数量:45 结贴的总分数:2024
无满意结贴数:5 无满意结贴分:350
未结的帖子数:13 未结的总分数:350
结贴的百分比:77.59 % 结分的百分比:85.26 %
无满意结贴率:11.11 % 无满意结分率:17.29 %
楼主加油
不是提供了getHibernateTemplate()了吗
比直接操作session好吧
不关闭应该没问题~~waiting 高手回答~~
return (List) getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(TradeDomain.class);
criteria.add(Restrictions.like("sdtype", type, MatchMode.ANYWHERE));
criteria.setMaxResults(number);
criteria.setCacheable(true);
return criteria.list();
}
},true);
}public TradeDomain retrieveTradeDomainById(String demandID) {
return (TradeDomain) getHibernateTemplate().get(TradeDomain.class, demandID);
}