034:coreAPI_Delect,load,get,delete,update,saveOrupdate,clear,flush
来源:互联网 发布:looks for mac 编辑:程序博客网 时间:2024/05/19 04:54
@Testpublic void testDelete() {Teacher t = new Teacher();t.setName("t1");t.setTitle("middle");t.setBirthDate(new Date());Session session = sessionFactory.getCurrentSession();session.beginTransaction();session.save(t);System.out.println(t.getId());session.getTransaction().commit();Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.delete(t);session2.getTransaction().commit();}@Testpublic void testDelete2() {Teacher t = new Teacher();t.setId(2);Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.delete(t);session2.getTransaction().commit();}
load:从数据库里取一个记录,取到内存里,把这条记录转换成对应的对象
Teacher t = (Teacher) session.load(Teacher.class, 1);
意为:
从数据库里拿到了ID为1的那条记录了,它会自动转换成一个对象t,同时会把这个对象转换成Persistent的状态【即缓存里有数据库里也有】
get与load的区别:
1、不存在对应记录的表现不一样
2、load返回的是代理对象,等到真正用到以象的内容时才发出sql语句。
3、get直接从数据库加载,不会延迟。
@Testpublic void testLoad() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.load(Teacher.class, 1);session.getTransaction().commit();System.out.println(t.getClass());// System.out.println(t.getName());}@Testpublic void testGet() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.get(Teacher.class, 1);session.getTransaction().commit();System.out.println(t.getClass());// System.out.println(t.getName());}
package com.bjsxt.hibernate;import java.util.Date;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.tool.hbm2ddl.SchemaExport;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class HibernateCoreAPITest {private static SessionFactory sessionFactory;@BeforeClasspublic static void beforeClass() {sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();}@AfterClasspublic static void afterClass() {sessionFactory.close();}@Testpublic void testTeacherSave() {Teacher t = new Teacher();t.setName("t1");t.setTitle("middle");t.setBirthDate(new Date());// Session session = sessionFactory.openSession();Session session = sessionFactory.getCurrentSession();session.beginTransaction();session.save(t);Session session2 = sessionFactory.getCurrentSession();System.out.println(session == session2);session.getTransaction().commit();Session session3 = sessionFactory.getCurrentSession();System.out.println(session == session3);}@Testpublic void testSaveWith3State() {Teacher t = new Teacher();t.setName("t1");t.setTitle("middle");t.setBirthDate(new Date());Session session = sessionFactory.getCurrentSession();session.beginTransaction();session.save(t);System.out.println(t.getId());session.getTransaction().commit();System.out.println(t.getId());}@Testpublic void testDelete() {Teacher t = new Teacher();t.setName("t1");t.setTitle("middle");t.setBirthDate(new Date());Session session = sessionFactory.getCurrentSession();session.beginTransaction();session.save(t);System.out.println(t.getId());session.getTransaction().commit();Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.delete(t);session2.getTransaction().commit();}@Testpublic void testDelete2() {Teacher t = new Teacher();t.setId(2);Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.delete(t);session2.getTransaction().commit();}@Testpublic void testLoad() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.load(Teacher.class, 1);session.getTransaction().commit();System.out.println(t.getClass());// System.out.println(t.getName());}@Testpublic void testGet() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.get(Teacher.class, 1);session.getTransaction().commit();System.out.println(t.getClass());// System.out.println(t.getName());}@Testpublic void testUpdate1() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.get(Teacher.class, 1);session.getTransaction().commit();t.setName("zhanglaoshi");Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.update(t);session2.getTransaction().commit();}@Testpublic void testUpdate2() {Teacher t = new Teacher();t.setName("zhanglaoshi");Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.update(t);session2.getTransaction().commit();}@Testpublic void testUpdate3() {Teacher t = new Teacher();t.setId(1);t.setName("zhanglaoshi");Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.update(t);session2.getTransaction().commit();}@Testpublic void testUpdate4() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.get(Teacher.class, 1);t.setName("zhangsan2");session.getTransaction().commit();}@Testpublic void testUpdate5() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Student s = (Student) session.get(Student.class, 1);s.setName("zhangsan5");session.getTransaction().commit();s.setName("z4");Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.update(s);session2.getTransaction().commit();}@Testpublic void testUpdate6() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Student s = (Student) session.get(Student.class, 1);s.setName("zhangsan6");session.getTransaction().commit();s.setName("z4");Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.merge(s);session2.getTransaction().commit();}@Testpublic void testUpdate7() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Query q = session.createQuery("update Student s set s.name='z5' where s.id = 1");q.executeUpdate();session.getTransaction().commit();}@Testpublic void testSaveOrUpdate() {Teacher t = new Teacher();t.setName("t1");t.setTitle("middle");t.setBirthDate(new Date());Session session = sessionFactory.getCurrentSession();session.beginTransaction();session.saveOrUpdate(t);session.getTransaction().commit();t.setName("t2");Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2.saveOrUpdate(t);session2.getTransaction().commit();}@Testpublic void testClear() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.load(Teacher.class, 1);System.out.println(t.getName());session.clear();Teacher t2 = (Teacher) session.load(Teacher.class, 1);System.out.println(t2.getName());session.getTransaction().commit();}@Testpublic void testFlush() {Session session = sessionFactory.getCurrentSession();session.beginTransaction();Teacher t = (Teacher) session.load(Teacher.class, 1);t.setName("tttt");session.clear();t.setName("ttttt");session.getTransaction().commit();}<pre class="java" name="code">/*@Testpublic void testSchemaExport() {new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);}*/
public static void main(String[] args) {beforeClass();}}
如果不在hibernate.cfg.xml中不加:
<!-- Drop and re-create the database schema on startup -->
<!-- 要不要hibernate 自动生成建表语句 -->
<property name="hbm2ddl.auto">create</property>
则要加上上面的:
/*@Testpublic void testSchemaExport() {new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);}*/
让它自动建表。
0 0
- 034:coreAPI_Delect,load,get,delete,update,saveOrupdate,clear,flush
- Hibernate深入理解----03Session缓存核心方法(save()和persist(),get()和load(),update()和saveOrUpdate,delete()和evil()
- hibernate-核心开发接口(delete、get、load 、saveOrUpdate 、SchemaExport)-7
- hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别
- hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。
- Hibernate几个常用方法官网释义 save、update、flush、load、merge、persist、delete、commit
- saveorUpdate与unsaved-value,save,update,delete
- flush,reflush,save,persist,get,load
- hibernate的saveorUpdate与unsaved-value,save,update,delete总结
- Hibernate Session中的save(),update(),delete(),saveOrUpdate() 细粒度分析
- load,get;find,iterator;merge,saveOrUpdate,lock的区别
- load,get;find,iterator;merge,saveOrUpdate,lock的区别
- session中的save()与saveOrUpdate(),load()与get()区别
- Hibernate的OID,对象状态,save(),saveOrUpdate(),get()和load()
- 数据库操作语言:INSERT、UPDATE、LOAD、DELETE
- Hibernate...clear..flush
- Hibernate--clear(),flush(),evict()
- Hibernate 第九讲 Hibernate的update, clear 和 flush方法
- 运用权重高的主页去优化
- POJ--2528--Mayor's posters【线段树+离散化】
- C语言中main函数参数argc,argv的理解
- pageX,clientX,offsetX,layerX的区别
- MYSQL1130错误的解决方案(转)
- 034:coreAPI_Delect,load,get,delete,update,saveOrupdate,clear,flush
- 下一个时代----虚拟现实?
- 中国国际十年夜年夜虚构长机上网站需要商
- 了解主要的搜索引擎
- 数据库开发试题总结
- aidl
- [转载]C++Assert()函数
- hdu-2050-折线分割平面
- 从 CloudKit 看 BaaS 服务的趋势