使用Hibernate操作数据库

左手的ㄟ右手 2022-09-23 03:38 216阅读 0赞

1,使用Hibernate加载数据
加载数据是指通过标识符得到指定类的持久化对象,Session提供了get()和load() 两种方法来加载数据
(不操作数据不用事务这个概念)

1>get()

  1. <span style="font-size:18px;"> public void HIbernateTest() {
  2. Configuration conf = new Configuration().configure();
  3. ServiceRegistry st = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
  4. SessionFactory sf = conf.buildSessionFactory(st);
  5. Session sess = sf.openSession();
  6. Student s = (Student) sess.get(Student.class, 1);
  7. System.out.println(s.toString());
  8. sess.close();
  9. sf.close();
  10. }</span>

如果根据ID查询的对象不存在,会返回null,如果再调用这个类的成员方法,会报空指针异常;

2>load()

  1. <span style="font-size:18px;"> public void HIbernateTest() {
  2. Configuration conf = new Configuration().configure();
  3. ServiceRegistry st = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
  4. SessionFactory sf = conf.buildSessionFactory(st);
  5. Session sess = sf.openSession();
  6. Student s = (Student) sess.load(Student.class, 13);
  7. System.out.println(s.toString());
  8. sess.close();
  9. sf.close();
  10. }</span>

如果数据存在,load()与get()方法效果一样,如果这个数据对象不存在,结果会出现ObjectNotFoundException异常,提示对象没有发现,这与get()方法不同;
2,使用Hibernate删除数据
删除数据是指根据主键值将一条记录从数据表中删除;
delete()

  1. <span style="font-size:18px;"> //获得Session
  2. sess = sf.openSession();
  3. tx = sess.beginTransaction();
  4. Student s = (Student)sess.get(Student.class,3);
  5. sess.delete(s);
  6. tx.commit();</span>

3,使用Hibernate修改数据
update()

  1. <span style="font-size:18px;"> sess = sf.openSession();
  2. tx = sess.beginTransaction();
  3. Student s = (Student)sess.get(Student.class,2);
  4. s.setAge(133);
  5. sess.update(s);
  6. tx.commit();</span>

除了update(),也可以使用saveOrUpdate()方法实现修改

发表评论

表情:
评论列表 (有 0 条评论,216人围观)

还没有评论,来说两句吧...

相关阅读