private void findStudents(){
SessionFactory sft=new Configuration().configure().buildSessionFactory();
Session session=sft.openSession();
session.beginTransaction();
Query query=session.createQuery("from student as t where t.id=:sid");
query.setString("sid", "789");
List st=query.list();
for(Iterator sit=st.iterator();sit.hasNext()){
Student stu=(Student)sit.next();
System.out.println(stu.getName());
session.getTransaction().commit();
session.close();
sft.close();
}
}}这两句话 报错 求解
到底正确的应该怎么写啊
SessionFactory sft=new Configuration().configure().buildSessionFactory();
Session session=sft.openSession();
session.beginTransaction();
Query query=session.createQuery("from student as t where t.id=:sid");
query.setString("sid", "789");
List st=query.list();
for(Iterator sit=st.iterator();sit.hasNext()){
Student stu=(Student)sit.next();
System.out.println(stu.getName());
session.getTransaction().commit();
session.close();
sft.close();
}
}}这两句话 报错 求解
到底正确的应该怎么写啊
for(Iterator sit=st.iterator();sit.hasNext()){
Student stu=(Student)sit.next();
System.out.println(stu.getName());
session.getTransaction().commit();
session.close();
sft.close();
}
还有你的session怎么是在for里面关闭的呢?像你之前的代码出现的错误是“session was already closeed”是吧!没有异常处理的话,close放到for外面。一般是放在finally块的。
session放在for里面是一大错误!而且影响非常大,他可以让你看见红色的字体”session was closeed",而且数据还是不完整的