首页 > 代码库 > Hibernate查询方式

Hibernate查询方式

  Hibernate主要提供了三种查询方式

    ·HQL

    ·Criteria

    ·Native SQL Queries

 

HQL

  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查询方式