Hibernate旅程(四)Hibernate对数据库删除、查找、更新操作(二)

2014-11-24 02:40:32 · 作者: · 浏览: 1
ached对象,调用session的update()方法,代码如下所示。

//测试方法以test开头.测试update方法.返回存在的加载的.

publicvoid testUpdate1()

{

Sessionsession =null;

try

{

session= HibernateUtils.getSession();

//开启事务.

session.beginTransaction();

//采用load查询不存在的数据,hibernate会抛出object not found exception

//手动构造的Detached对象.

Useruser =newUser();

user.setId("402881e5441bfb0601441bfb075b0002");

user.setName("周六");

session.update(user);

//提交事务.把内存的改变提交到数据库上.

session.getTransaction().commit();

}catch(Exception e){

e.printStackTrace();

session.getTransaction().rollback();

}finally{

HibernateUtils.closeSession(session);

}

}

加载对象,调用session的update()方法,让对象处于持久化状态的时候进行更新操作,代码如下所示。

//测试方法以test开头.测试update方法.返回存在的加载的.

publicvoid testUpdate2()

{

Sessionsession =null;

try

{

session= HibernateUtils.getSession();

//开启事务.

session.beginTransaction();

//采用load查询不存在的数据,hibernate会抛出object not found exception

//先把要更新的查出来.

//建议采用此种方式,先加载再更新的方式.

Useruser = (User)session.load(User.class,"402881e5441bfb0601441bfb075b0002");

//查出来的话就直接放入了.处于持久化状态.

user.setName("周日");

//显示的调用,因为为持久化状态也可以不显示调用.

session.update(user);

//提交事务.把内存的改变提交到数据库上.

session.getTransaction().commit();

}catch(Exceptione){

e.printStackTrace();

session.getTransaction().rollback();

}finally{

HibernateUtils.closeSession(session);

}

}