有个错误,请高手指导,
try{
1 Session session = HibernateUtil.openSession();
session.beginTransaction();
Group group = new Group("朋友");
Group group1 = new Group("商务");
Group group2 = new Group("家人");
ContactPerson cp = new ContactPerson("比尔盖茨");
cp.setGroup(group);
session.save(cp);
ContactPerson cp1 = new ContactPerson("巴菲特");
cp.setGroup(group1);
session.save(cp1);
ContactPerson cp2 = new ContactPerson("路人甲");
cp.setGroup(group2);
session.save(cp2);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
}finally{
2 session.close();
}标 1 的这一行如果放在try外面就真确;但如果放在try里面(想现在这样),标 2 的这一行就会提示有错误,前面有红色错误提示。
注:HibernateUtil是我写的一个工具类,用来获得session对象的,
请高手看看这是怎么回事呢,十分感谢!!
请解释详细原因,
try{
1 Session session = HibernateUtil.openSession();
session.beginTransaction();
Group group = new Group("朋友");
Group group1 = new Group("商务");
Group group2 = new Group("家人");
ContactPerson cp = new ContactPerson("比尔盖茨");
cp.setGroup(group);
session.save(cp);
ContactPerson cp1 = new ContactPerson("巴菲特");
cp.setGroup(group1);
session.save(cp1);
ContactPerson cp2 = new ContactPerson("路人甲");
cp.setGroup(group2);
session.save(cp2);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
}finally{
2 session.close();
}标 1 的这一行如果放在try外面就真确;但如果放在try里面(想现在这样),标 2 的这一行就会提示有错误,前面有红色错误提示。
注:HibernateUtil是我写的一个工具类,用来获得session对象的,
请高手看看这是怎么回事呢,十分感谢!!
请解释详细原因,
try和finally相当于是两个区域,所以session声明时要对这两个区域是全局的。。你也可以如下写法:
Session session = null;
try{
session = HibernateUtil.openSession();
}catch(Exception e){} finally{
session.close();
}
你这是变量使用范围问题
Session session = null;
try{
// session 赋值
session = HibernateUtil.openSession();
}catch(Exception e){
} finally{
// 关闭session
session.close();
}这样把session在try声明,在try里面赋值就可以解决你的问题了.