知识大全 Hibernate:HQL/QBC查询语言比较的用法

Posted

篇首语:瞄准还不是射中,起跑还不算到达。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate:HQL/QBC查询语言比较的用法相关的知识,希望对你有一定的参考价值。

Hibernate:HQL/QBC查询语言比较的用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Hib的检索方式

    

   导航对象图检索方式 通过已经加载的对象 调erator()方法可以得到order对象

    

  如果是首次执行此方法 Hib会从数据库加载关联的order对象 否则就从缓存中得到

    

   OID检索方式 通过session的get load方法知道了OID的情况下可以使用

    

   HQL检索方式 使用面向对象的HQL查询语句session的find方法利用HQL来查询

    

   QBC检索方式 利用QBCAPI来检索它是封装了基于字符串的查询语句

    

   本地的SQL检索方式 使用本地数据库的SQL查询语句Hib会负责把检索到的JDBC结果集映射为持久化对象图

    

  五种检索方式的使用场合和特点

    

  HQL 是面向对象的查询语言 同SQL有些相似是Hib中最常用的方式

    

  查询设定各种查询条件

    

  支持投影查询 检索出对象的部分属性

    

  支持分页查询 允许使用having和group by

    

  提供内制的聚集函数 sum() min() max()

    

  能调用用户的自定义SQL

    

  支持子查询 嵌入式查询

    

  支持动态绑定参数

    

  建议使用Query接口替换session的find方法

    

  Query Q = session createQuery( from customer as c where c name = :customerName + and c age = :customerAge );

  query setString ( customerName tom );

  query setInteger( customerAge );

  list result = query list();

  

  QBC :  QBCAPI提供了另一种方式 主要是Criteria接口 Criterion接口和Expression类

    

  Criteria criteria = session createCriteria(customer class);

  Criterion criterion = Expression like( name t% );

  Criterion criterion = Expression eq( age new Integer( ));

  Critera = criteria add(criterion ) ;

  Critera = criteria add(criterion ) ;

  list result = criteria list();

  

  或是 list result = session createCriteria(Customer class) add(Expression eq( this name tom )) list();

    

  SQL :  采用HQL和QBC检索时 Hib生成SQL语句适用所有数据库

    

  Query query  = session createSQLQuery( select c * from customers c where c name like : customername + and c age = :customerage c customer calss);

  query setString( customername tom );

  query setInteger( customerage );

  list result = query list();

  

  /////////////多态查询

    

  HQL session createQuery( from employee );

  QBC session createCriteria(employee class);

  HQL : session createQuery( from hourlyEmployee );

  QBC : session createCriteria(hourlyEmployee class);

  

  下面的HQL查询语句将检索出所有的持久化对象

  

  from java lang Object ;

  from java io serializable ;

  

  ////////////查询的排序

    

   查询结果按照客户姓名升序排列

  

  HQL

  Query query = session createQuery ( from customer c order by c name );

  QBC

  Criteria criteria = session createCriteria(customer class);

  criteria addOrder(order asc( name ));

  HQL :

  Query query = session createQuery ( from customer c order by c name asc c age desc );

  QBC :

  Criteria criteria = session createCriteria(customer class);

  criteria addOrder(order asc ( name ));

  criteria addOrder(order desc( age ));

    

  import net sf hibernate pression Order

  import mypack Order

  

  Criteria criteria = session createCritria (mypack Order class);

  criteria addOrder(net sf hibernate Order asc( name ));

  

  ///////////HQL语句的参数绑定Query接口提供了绑定各种Hib映射类型的方法

    

  setBinary()

  setString()

  setBoolean()

  setByte()

  setCalendar()

  setCharacter()

  setDate()

  setDouble()

  setText()

  setTime()

  setTimestamp()

  setEntity()//把参数与一个持久化类的事例绑定lsit result = session createQuery( from order o where o customer =            :customer ) setEntity( customer customer) list ;

  setParameter()//绑定任意类型的参数

  setProperties()//把命名参数与一个对象的属性值绑定 Query query = session createQuery( from customer c where c name =:     name + and c age =:age );

cha138/Article/program/Java/ky/201311/28916

相关参考

知识大全 数据库查询语言(1)

ASP基础入门:数据库查询语言(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  原定计划从本

知识大全 深入研究SQL结构化查询语言中的LIKE语句

深入研究SQL结构化查询语言中的LIKE语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在S

知识大全 怎么查询全国计算机二级考试c语言是否报名成功(我是机试补考)。急

怎么查询全国计算机二级考试c语言是否报名成功(我是机试补考)。急!只有在你报名的地方才能查得出来,如果你是在学校的话就只能在招生考试办查询。如何查看全国计算机二级考试是否报名成功?只有在你报名的地方才

知识大全 您好 您有语言学概论相关复习资料么

您好您有语言学概论相关复习资料么?谢谢!这个可以买书的,也不贵,我是买的书我要怎样查询自考语言学概论的复习资料推荐这个网址资料比较精简有用我也经常在这上面找的examda./zikao/coach/2

知识大全 利用C#编写查询IP所在区段

利用C#编写查询IP所在区段  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  编程语言C#类&nb

知识大全 我想学第二语言,比较好学的语言。

我想学第二语言,比较好学的语言。日语吧,现在日资企业也蛮多的,找工作好点,而且感觉起来好学点想学第二语言可以告诉你每一门语言都不简单,用我们学语言业内的话来说,法语是先难后简单,日语是先容易后难,如果

知识大全 C#语言与Java语言程序的比较

C#语言与Java语言程序的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  迈入二十一世纪以

知识大全 现在学习什么计算机语言比较有发展空间

现在学习什么计算机语言比较有发展空间?我是初学者。学Java。C语言\\C++也可以。现在学习什么计算机语言比较好Java或者C++或者VC++初学者比较适合学什么计算机语言?学VB把用处还是很大的。

——百多年来,现代语言科学经历了三个重要时期,历史比较语言学、结构主义语言学和转换生成语言学分别是这三个时期的代表。对这

——百多年来,现代语言科学经历了三个重要时期,历史比较语言学、结构主义语言学和转换生成语言学分别是这三个时期的代表。对这段话最准确的复述是:_____A、现代语言学发展了一百多年B、历史比较语言学、结

知识大全 请问一下高中生出国还需不需要语言成绩

请问一下高中生出国还需不需要语言成绩?要是出去学语言大约需要多少钱?(去加拿大)麻烦解答!如果是高中毕业申请大学需要语言成绩,具体的分数线不同的学校要求不同,请上网查询各学校的官方网站。如果需要进一步