码迷,mamicode.com
首页 > 系统相关 > 详细

关于hibernate的一点心得

时间:2014-07-23 16:16:51      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:os   io   art   re   c   cti   

1.部门和员工的关系:

部门<->员工是一对多的关系,即一个部门有多个员工,所以员工表里有部门id:depart_id

在下面这个代码中各添加部门和员工的一个记录即:新增一个部门,同时这个部门下有一个员工

static Department add() {
Session s = null;
Transaction tx = null;
try {
Department depart = new Department();
depart.setName("depart name");

Employee emp = new Employee();
emp.setDepart(depart);// 对象模型,建立两个对象之间的关联
emp.setName("emp name");

s = HibernateUtil.getSession();
tx = s.beginTransaction();
s.save(depart);//********************
s.save(emp);//*******************
tx.commit();
return depart;
} finally {
if (s != null) {
s.close();
}
}
}

注意:打*********号的两行顺序不变的话,控制台输出结果为:

Hibernate: insert into Department (name) values (?)
Hibernate: insert into Employee (name, depart_id) values (?, ?)

如果改变的话为:

Hibernate: insert into Employee (name, depart_id) values (?, ?)
Hibernate: insert into Department (name) values (?)
Hibernate: update Employee set name=?, depart_id=? where id=?

注意区别。。。。

 

2 .关于try catch finally 之间的那点事

碰到需要返回值的,如果没有catch,只有finally的话只需在try中return下就行了,不会报错

static Employee query(int empId) {
Session s = null;
Transaction tx = null;
try {
s = HibernateUtil.getSession();
tx = s.beginTransaction();
Employee emp = (Employee) s.get(Employee.class, empId);
tx.commit();
return emp;

} finally {
if (s != null) {
s.close();
}
}
}

如果有catch那么就需要在finally之后return,不然报错

static Employee query(int empId) {
Session s = null;
Transaction tx = null;
try {
s = HibernateUtil.getSession();
tx = s.beginTransaction();
Employee emp = (Employee) s.get(Employee.class, empId);
tx.commit();
return emp;

}

} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}finally {
if (s != null) {
s.close();
}
}

return null;
}

关于hibernate的一点心得,布布扣,bubuko.com

关于hibernate的一点心得

标签:os   io   art   re   c   cti   

原文地址:http://www.cnblogs.com/burns/p/3863075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!