Hibernate里面的几个方法

1、save方法:

1 public void testSave() throws Exception {
2         Session session = HibernateUtils.getInstance().getSession();
3         session.beginTransaction();
4         Teacher tac = new Teacher("哄哄",52);
5         session.save(tac);
6         session.getTransaction().commit();
7         session.close();
8     }

2、delete方法:

1 public void testDelete() throws Exception {
2         Session session = HibernateUtils.getInstance().getSession();
3         session.beginTransaction();
4         Teacher tac = new Teacher(2L);
5         session.delete(tac);
6         session.getTransaction().commit();
7         session.close();
8     }

3、update方法:

1 public void testUpdate() throws Exception {
2         Session session = HibernateUtils.getInstance().getSession();
3         session.beginTransaction();
4         Teacher tac = new Teacher(3L,"哄哄",52);
5         session.update(tac);
6         session.getTransaction().commit();
7         session.close();
8     }

4、list方法:

1 public void testList() throws Exception {
2         Session session = HibernateUtils.getInstance().getSession();
3         Query query = session.createQuery("select tec from Teacher tec");
4         @SuppressWarnings("unchecked")
5         List<Teacher> list = query.list();
6         System.out.println(list);
7         session.close();
8     }

5、saveorupdate方法:

 1 public void testSaveOrUpdate() throws Exception {
 2         /**
 3          * 利用saveOrUpdate添加对象,要使用的话,要么没有id,要么
 4          * 使用数据库中已有的id
 5          */
 6         Session session = HibernateUtils.getInstance().getSession();
 7         session.beginTransaction();
 8         
 9         /*Teacher tac = new Teacher("哈哈",21);
10         session.saveOrUpdate(tac);*/
11         Teacher tac = new Teacher(2l,"小小",21);
12         session.saveOrUpdate(tac);
13         
14         session.getTransaction().commit();
15         session.close();
16     }

6、persist方法:

 1 public void testPersist() throws Exception {
 2         //添加方法JPA规范里面的
 3         Session session = HibernateUtils.getInstance().getSession();
 4         session.beginTransaction();
 5         
 6         Teacher tac = new Teacher("大大",21);
 7         session.persist(tac);
 8         
 9         session.getTransaction().commit();
10         session.close();
11     }

7、merge方法:

 1 public void testMerge() throws Exception {
 2         /**
 3          *    JPA规范里面的一个方法,相当与save
 4          *    1.如果里面没有对象里面没有id,相当于save方法;
 5          *    2.如果有id,但是数据库里面没有,相当于save方法,并且忽略对象里面的id
 6          *    3.如果有id,数据库里面也有,则就相当于update方法
 7          */
 8         Session session = HibernateUtils.getInstance().getSession();
 9         session.beginTransaction();
10         
11         //Teacher tac = new Teacher(20L,"啦啦啦",21);
12         Teacher tac = new Teacher("啦啦啦",21);
13         session.merge(tac);
14         
15         session.getTransaction().commit();
16         session.close();
17     }

8、get方法:

 1 public void testGet() throws Exception {
 2         /**
 3          * 一级缓存:同时执行两个一模一样的操作,只打印一次数据库语句
 4          * Hibernate: select teacher0_.e_id as e1_0_0_,-
 5          * teacher0_.e_name as e2_0_0_, teacher0_.e_age as e3_0_0_ -
 6          * from t_teacher teacher0_ where teacher0_.e_id=?
 7          * Teacher [id=3, name=大大, age=21]
 8          * Teacher [id=3, name=大大, age=21]
 9          */
10         Session session = HibernateUtils.getInstance().getSession();
11         session.beginTransaction();
12         
13         Teacher tea = (Teacher) session.get(Teacher.class, 3L);
14         System.out.println(tea);//一次操作
15         Teacher tea1 = (Teacher) session.get(Teacher.class, 3L);
16         System.out.println(tea1);//二次操作
17         
18         session.getTransaction().commit();
19         session.close();
20     }

9、load方法:

 1 public void testLoad() throws Exception {
 2         Session session = HibernateUtils.getInstance().getSession();
 3         session.beginTransaction();
 4         /**
 5          * session.get在调用这个方法以后立马去数据库查询;
 6          * session.load在调用之后先不管用户的返回值,看下面的对象的非主键getter方法是否调用,
 7          * 如果调用,再去数据库查询,否则一直观望,直到session挂了,在使用load的时候一定要
 8          * 保证id在数据库中有对应的对象
 9          */
10         /*Teacher tea = (Teacher) session.get(Teacher.class, 4L);
11         System.out.println("~~~~~~~~~~~~~~~~~~~~");
12         System.out.println(tea);*/
13         /**控制台的输出结果:
14          * Hibernate: select teacher0_.e_id as e1_0_0_, teacher0_.e_name as e2_0_0_, teacher0_.e_age as e3_0_0_ from t_teacher teacher0_ where teacher0_.e_id=?
15          * ~~~~~~~~~~~~~~~~~~~~
16          * Teacher [id=4, name=大大, age=21]
17          */
18         Teacher tea = (Teacher) session.load(Teacher.class, 4L);
19         System.out.println("~~~~~~~~~~~~~~~~~~~~~");
20         System.out.println(tea);
21         /**控制台的输出结果:
22          * ~~~~~~~~~~~~~~~~~~~~~
23          * Hibernate: select teacher0_.e_id as e1_0_0_, teacher0_.e_name as e2_0_0_, teacher0_.e_age as e3_0_0_ from t_teacher teacher0_ where teacher0_.e_id=?
24          * Teacher [id=4, name=大大, age=21]
25          */
26         session.getTransaction().commit();
27         session.close();
28     }

 

转载于:https://www.cnblogs.com/nice6/p/6550601.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值