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可以设定的值包括: