Hibernate查询方式
Posted Ouka傅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate查询方式相关的知识,希望对你有一定的参考价值。
Hibernate主要提供了三种查询方式
·HQL
·Criteria
·Native SQL Queries
HQL是Hibernate Query Language的简称。是Hibernate自己搞的一套面向对象的查询方式。最大的好处就是移植性。在更改数据库的时候,会根据数据库生成对应的SQL文。
HQL的查询主要是通过org.hibernate.query.Query,可以通过Session来获得一个Query。如果HQL是一个命名的Query这可以通过Sesson的getNamedQuery方法,否则的话可以通过creatQuery方法。
我们可以看看Query接口。
·首先它时候一个接口,支持泛型操作 public interface Query<R> extends TypedQuery<R>,COmmonQueryContract.
·List<R> list():返回一个集合
·R uniqueResult():返回一个实例,如果没查询到则返回null
·Query<R> setFetchSize(int fetchSize):设置查询的记录数的提示
·Query<R> setFirstResult(int startPosition):设置查询开始记录的位置
·Query<R> setMaxResults(int maxResult):设置查询的最大记录数
setFirstResult(int startPosition)+setMaxResults(int maxResult)配合设置,可以实现分页查询。
·Query<R> setParameter(xx,xx,xx?):设置参数
查询语句:
查询语句的基本结构
select_statement :: = [select_clause] from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]
最简单的查询与语句如下:
List<Person> persons=session.createQuery("from Person").list();
更新语句
更新的基本结构
update_statement ::= update_clause [where_clause] update_clause ::= UPDATE entity_name [[AS] identification_variable] SET update_item {, update_item}* update_item ::= [identification_variable.]{state_field | single_valued_object_field} = new_value new_value ::= scalar_expression | simple_entity_expression | NULL
删除语句
删除语句的基本结构
delete_statement ::= delete_clause [where_clause] delete_clause ::= DELETE FROM entity_name [[AS] identification_variable]
插入语句
插入语句的基本结构
insert_statement ::= insert_clause select_statement insert_clause ::= INSERT INTO entity_name (attribute_list) attribute_list ::= state_field[, state_field ]*
以上是关于Hibernate查询方式的主要内容,如果未能解决你的问题,请参考以下文章