hibernate_1

  • J8_526023
    了解作者
  • 9.2MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-15 10:23
    上传日期
初学hibernate第一章,实例与教程,简单上手容易。学习文档在DOC内。
hibernate_ch1.rar
内容介绍
package org.px.ch1.junit; import java.text.ParseException; import java.text.SimpleDateFormat; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.junit.BeforeClass; import org.junit.Test; import org.px.ch1.dao.UserDao; import org.px.ch1.dao.impl.UserDaoHibernateImpl; import org.px.ch1.dao.po.User; import org.px.ch1.util.HibernateUtils; public class UserDaoTest { private static UserDao userDao; //@BeforeClass注解指定的方法会在所有的测试方法调用前被调用 @BeforeClass public static void setUpBeforeClass() throws Exception { userDao=new UserDaoHibernateImpl(); } //@Test注解指定测试方法 @Test public void testSaveUser() throws Exception{ User user=new User(); user.setUserId(100); //映射文件指定id的generator为native 这行将不起作用 oracle中 hibernate会自动生成序列 user.setAge(new Short("33")); user.setUsername("东方不败"); user.setPassword("123"); user.setPhone("8888888"); user.setSex("女"); user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1990-5-8")); userDao.saveUser(user); } @Test public void testDelete() throws Exception{ User user=new User(); user.setUserId(3); user.setUsername("东方不败"); userDao.delete(user); } @Test public void testDeleteById() throws Exception{ userDao.deleteById(User.class, 2); } @Test public void testUpdate() throws Exception{ User user=new User(); user.setUserId(4); user.setUsername("东方不败2"); userDao.updateUser(user); } //测试get() @Test public void testGet() throws Exception{ User user=userDao.get(User.class, 1); System.out.println(user); } //测试load() @Test public void testLoad() throws Exception{ User user=userDao.load(User.class, 1); System.out.println(user); } //测试getSession() @Test public void testGetSession() throws ParseException { User user=new User(); user.setUsername("西门吹雪"); user.setAge(Short.valueOf("18")); user.setSex("男"); user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1999-5-8")); SessionFactory sf=HibernateUtils.getSessionFactory(); Session session=sf.openSession(); // 总是创建新的session Session session2=sf.openSession(); System.out.println(session==session2); //是否同一对象 session.beginTransaction(); session.save(user); session.getTransaction().commit(); session.close(); //需要手动close } //测试getCurrentSession() @Test public void testGetCurrentSession() throws ParseException { User user=new User(); user.setUsername("西门吹雪4"); user.setAge(Short.valueOf("18")); user.setSex("男"); user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1999-5-8")); SessionFactory sf=HibernateUtils.getSessionFactory(); Session session=sf.getCurrentSession(); //从上下文环境中获得session session.beginTransaction(); session.save(user); Session session2=sf.getCurrentSession(); // 从上下文环境中获得session session2.save(user); System.out.printf("是否同一对象:%b%n",session==session2); //是否同一对象 session.getTransaction().commit(); // 提交事务 关闭session Session session3=sf.getCurrentSession(); System.out.printf("是否同一对象:%b%n",session==session3); //是否同一对象 session3.getTransaction().commit(); } //测试Clear() //清除session中的缓存.调用clear()方法会强制清除session缓存.不会与数据库打交道. @Test public void testClear() throws ParseException { Session session=HibernateUtils.getCurrentSession(); session.beginTransaction(); User user=(User)session.get(User.class,1); System.out.println(user); session.clear(); //清空session缓存 User user2=(User)session.get(User.class,1); System.out.println(user2); session.getTransaction().commit(); } //测试PO对象的三种状态 @Test public void testObjectState() throws Exception { Session session = HibernateUtils.getSession(); Transaction tran = session.beginTransaction(); System.out.println("*****new出一个临时对象user********\n"); User user = new User();// user 临时状态 user.setUsername("西门吹雪"); user.setAge(Short.valueOf("20")); user.setSex("男"); user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1999-5-8")); session.save(user); System.out.println("*****执行save() user转为持久化对象********\n"); user.setUsername("小李飞刀"); System.out.println("*****更改持久化对象属性 并同步到数据库*****\n"); tran.commit(); // 提交前 flush同步数据库 System.out.println("*****提交事务清空缓存 user转为游离对象******\n"); int id =user.getUserId(); System.out.println("*****获取ID*******" + id + "\n"); user.setUsername("西门吹雪2"); // 设置游离对象的属性不会同步到数据库 session.close(); System.out.println("*****关闭session******\n"); System.out.println(user.getUserId()); System.out.println("*****session关闭后,游离对象依然存在*****\n"); } }
评论