Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); .... session.close();透过Session,可以对数据库进行新增、删除、更新,例如使用save()新增一笔数据:
User user = new User(); user.setName("momor"); user.setAge(new Integer(26)); session.save(user);使用get()或load()方法取得id为1的数据:
User user = (User) session.get(User.class, new Integer(1));如果未能发现相符合的数据,则get()方法会返回null,而load()方法会丢出ObjectNotFoundException,在进阶的应用中,load()方法可以返回代理对象,并可充分利用缓冲机制。
User user = (User) session.get(User.class, new Integer(1)); session.delete(user);如果您开启了一个Session,从数据表中取出数据显示到使用者接口上,之后关闭Session,当使用者在接口上操作完毕并按下储存时,这时您要重新开启一个Session,使用update()方法将对象中的数据更新至对应的数据表中:
User user = (User) session.get(User.class, new Integer(2)); session.close(); .... user.setAge(new Integer(27)); session = sessionFactory.openSession(); Transaction tx= session.beginTransaction(); session.update(user); tx.commit(); session.close();Session提供了一个saveOrUpdate()方法,为数据的储存或更新提供了一个统一的操作接口,藉由定义映像文件时,设定<id>标签的unsaved-value来决定什么是新的值必需,什么是已有的值必须更新:
<id name="id" column="id" type="java.lang.Integer" unsaved-value="null"> <generator class="native"/> </id>unsaved-value可以设定的值包括: