hibernate多个小知识点聚合
hibernate多个小知识点集合
事务比较GetCurrentSession和OpenSession方法
GetCurrentSession方法,获取当前的session,如果有,就用,如果没有,就new一个新的.
OpenSession永远new一个新的.
GetCurrentSession事务提交后不需要手动close().
OpenSession事务提交后需要手动close().
hibernate 的load方法获取数据
get对象方法
删除对象方法
更新对象方法
保存或更新对象方法
session还有以下两个常用方法
session.flush();
session.clear();
事务比较GetCurrentSession和OpenSession方法
GetCurrentSession方法,获取当前的session,如果有,就用,如果没有,就new一个新的.
OpenSession永远new一个新的.
GetCurrentSession事务提交后不需要手动close().
OpenSession事务提交后需要手动close().
hibernate 的load方法获取数据
package com.eiyoudao; import org.hibernate.Session; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import com.meiyoudao.domain.PersonAnno; /** * @author User * */ public class PersonAnnoUnit { private static Session session = null; @BeforeClass public static void getSession(){ Session sess = new AnnotationConfiguration().configure().buildSessionFactory() .getCurrentSession(); session = sess; } @AfterClass public static void commit(){ session.getTransaction().commit(); } @Test public void loadUnit(){ session.beginTransaction(); PersonAnno personAnno = (PersonAnno)session.load(PersonAnno.class, 4); //使用load方法获取数据,必须到personAnno.getName()才会到数据库中获取数据. System.out.println(personAnno.getName()); } }
get对象方法
@Test public void getUnit(){ session.beginTransaction(); PersonAnno personAnno = (PersonAnno)session.get(PersonAnno.class, 4); //使用get方法获取数据,到此已经到数据库中获取数据. System.out.println(personAnno.getName()); }
删除对象方法
@Test public void deleteUnit(){ session.beginTransaction(); PersonAnno personAnno = new PersonAnno(); personAnno.setId(1); session.delete(personAnno); }
更新对象方法
@Test public void updateUnit(){ session.beginTransaction(); PersonAnno personAnno = new PersonAnno(); //更新方法,必须有ID为3的列.如果没有,就会报错 personAnno.setId(3); personAnno.setName("daodao"); session.update(personAnno); }
保存或更新对象方法
@Test public void saveOrUpdateUnit(){ session.beginTransaction(); PersonAnno personAnno = new PersonAnno(); //ID为主键并且自增长,设置了ID就是update.如果没有ID列匹配的值,会报错.如果有会更新. //没有设置ID列.会为save.新增列. //personAnno.setId(0); personAnno.setName("daodao1"); session.saveOrUpdate(personAnno); }
session还有以下两个常用方法
session.flush();
session.clear();