当前位置: 首页 > news >正文

个人 备案 多个网站吗/360关键词排名百度

个人 备案 多个网站吗,360关键词排名百度,网络广告推广营销方案,中秋节网页制作素材在下边的一些文章中,我将会围绕着CRUD操作介绍一些概念,这些操作通过Hibernate和数据库进行操作。我们先来讨论一下Hibernate是如何通过load或者get加载实体的。 使用session.load()加载Hibernate实体 Hibernate的session接口为从你的数据库加载实体提供…

在下边的一些文章中,我将会围绕着CRUD操作介绍一些概念,这些操作通过Hibernate和数据库进行操作。我们先来讨论一下Hibernate是如何通过load或者get加载实体的。

使用session.load()加载Hibernate实体

Hibernate的session接口为从你的数据库加载实体提供了多种load()方法,每一个load()方法都需要实体的主键作为标识id,是强制提供的,除了ID,Hibernate也需要知道根据id查找的实体或者类的名字。load()方法返回之后,你需要把返回的对象强制转换到相应的类上以便将来使用它,这是load()方法可以正确运行需要的所有的东西。
我们来看一下load()方法在Hibernate session中不同形式
1、public Object load(Class theClass, Serializable id) throws HibernateException
2、public Object load(String entityName, Serializable id) throws HibernateException
3、public void load(Object object, Serializable id) throws HibernateException
第一个load()方法需要类的类型和ID一起加载,第二个方法需要实体的名字和ID,两个方法的都返回你需要的类型的值。最后一个load方法把object作为一个参数,这个对象应该和你要加载的类是一个类的,并且应该为空,Hibernate将会根据你的请求初始化那个对象。其他的load()方法在Hibernate session中也是有效的但要把锁模式作为一个参数。锁模式指定了Hibernate是否需要查询cache和为记录使用数据库那个级别锁。在官方文档中,Hibernate开发者声称Hibernate会为你选择合适的锁模式,尽管在一些情形中手动选择这些锁非常的重要。
当我们把Hibernate基础的知识讲的差不多之后,我们会讨论一些锁的东西
我们看一些简单的load方法的例子。
public class TestHibernate
{public static void main(String[] args){Session sessionOne = HibernateUtil.getSessionFactory().openSession();sessionOne.beginTransaction();// Create new Employee objectEmployeeEntity emp = new EmployeeEntity();emp.setFirstName("Lokesh");emp.setLastName("Gupta");//Save employeesessionOne.save(emp);//store the employee id generated for future useInteger empId = emp.getEmployeeId();sessionOne.getTransaction().commit();/************************************************************************///Let's open a new session to test load() methodsSession sessionTwo = HibernateUtil.getSessionFactory().openSession();sessionTwo.beginTransaction();//first load() method exampleEmployeeEntity emp1 = (EmployeeEntity) sessionTwo.load(EmployeeEntity.class, empId);System.out.println(emp1.getFirstName() + " - " +emp1.getLastName());//Let's verify the entity nameSystem.out.println(sessionTwo.getEntityName(emp1));sessionTwo.getTransaction().commit();/************************************************************************/Session sessionThree = HibernateUtil.getSessionFactory().openSession();sessionThree.beginTransaction();//second load() method exampleEmployeeEntity emp2 = (EmployeeEntity) sessionThree.load("com.howtodoinjava.demo.entity.EmployeeEntity", empId);System.out.println(emp2.getFirstName() + " - " +emp2.getLastName());sessionThree.getTransaction().commit();/************************************************************************/Session sessionFour = HibernateUtil.getSessionFactory().openSession();sessionFour.beginTransaction();//third load() method exampleEmployeeEntity emp3 = new EmployeeEntity();sessionFour.load(emp3 , empId);System.out.println(emp3.getFirstName() + " - " +emp3.getLastName());sessionFour.getTransaction().commit();HibernateUtil.shutdown();}   
}Output:Hibernate: insert into Employee (FIRST_NAME, LAST_NAME, ID) values (?, ?, ?)
Hibernate: select employeeen0_.ID as ID1_1_0_, employeeen0_.FIRST_NAME as FIRST_NA2_1_0_, employeeen0_.LAST_NAME as LAST_NAM3_1_0_from Employee employeeen0_ where employeeen0_.ID=?
Lokesh - Gupta      //First load method
com.howtodoinjava.demo.entity.EmployeeEntity
Hibernate: select employeeen0_.ID as ID1_1_0_, employeeen0_.FIRST_NAME as FIRST_NA2_1_0_, employeeen0_.LAST_NAME as LAST_NAM3_1_0_from Employee employeeen0_ where employeeen0_.ID=?
Lokesh - Gupta      //Second load method
Hibernate: select employeeen0_.ID as ID1_1_0_, employeeen0_.FIRST_NAME as FIRST_NA2_1_0_, employeeen0_.LAST_NAME as LAST_NAM3_1_0_from Employee employeeen0_ where employeeen0_.ID=?
Lokesh - Gupta      //Third load method

现在我们可以通过三种load()方法成功的加载实体,我们现在来看一下get()方法。

使用session.get()方法加载Hibernate实体

get()方法和load()方法非常像,get()方法有一个标识和一个实体名字或者类,有两个get()方法把lock模式作为参数,但是我们稍后讨论锁模式
1、public Object get(Class clazz, Serializable id) throws HibernateException
2、public Object get(String entityName, Serializable id) throws HibernateException
在编码层面上不论是load还是get没有太大的区别,你可以在上边的例子中用get替换load,但是没有get和最后一个load是相等的。你可以修改上边的测试代码的例子。

在Hibernate中load和get的不同

这两种方法的不同在于“ID不存在与数据库中时”的返回值。get方法会得到null,load方法会报下边的异常
Exception in thread "main" org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
[com.howtodoinjava.demo.entity.EmployeeEntity#23]
at org.hibernate.internal.SessionFactoryImpl$1$1.handleEntityNotFound(SessionFactoryImpl.java:253)
at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219)
at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:275)
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:151)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1070)at org.hibernate.internal.SessionImpl.load(SessionImpl.java:940)

原文地址:http://howtodoinjava.com/2014/09/05/how-to-load-get-entity-in-hibernate/


http://www.jmfq.cn/news/5066623.html

相关文章:

  • 泉州建设局网站/推广神器
  • 网站 标题 关键词 描述/网络营销专家
  • 搜狐快站做淘宝客网站/问答推广
  • 成都网站设计 冠辰/苏州网站关键词优化推广
  • 深圳做网站-信科网络/优化水平
  • 广东省做网站推广公司/企业网站建设需要多少钱
  • 做网站需要用什么软件/软考培训机构哪家好一点
  • 网站运营及推广/南京百度快速排名优化
  • 网站如何做背景音乐/自己建网站详细流程
  • 编程自己做网站/东莞网站关键词优化公司
  • 网站建设行业广告语/seo搜索优化 指数
  • ps做图 游戏下载网站有哪些内容/中国工商业联合会
  • 建站展示/app推广之家
  • 专业做中文网站/百度seo培训班
  • 夜间正能量网站/关键词你们懂的
  • 做网站时为什么导航时两行字/最新推广注册app拿佣金
  • 直销系统网站开发/晋城seo
  • 提供家居企业网站建设/青岛seo结算
  • 内部门户网站建设方案/sem是什么意思
  • it外包公司好不好/站长之家的seo综合查询工具
  • 大良企业网站建设/网络营销的基本方法有哪些
  • 做电影ppt模板下载网站/搜狐综合小时报2022113011
  • 国企怎么做网站/seo关键词排名优化联系方式
  • 网站维护员招聘/空间刷赞网站推广
  • 黄山网站建设有哪些/知乎推广公司
  • 专业柳州网站建设公司/百度免费推广平台
  • 专门做音乐的网站/精准网站seo诊断报告
  • 重庆网站建设外包公司哪家好/外贸网站建设流程
  • wordpress 付款插件/网站seo优化免费
  • 权重的网站/免费建站哪个网站最好