JPA定义了一套属于面向对象的查询语言:JPQL(Java Presistence Query Language)
Queyr接口是JPQL的核心,主要由Query接口来完成各种查询。
a、先是由EntityManager创建出来Query,EntityManger提供了如下方法来创建Query。
下面JPA支持的几种查询方式,包括JPQL查询、命名JPQL查询、原生SQL查询、命名原生SQL查询等。
Query createNamedQuery(String name):创建查询的名称来创建一个命名。这个命名查询即可能是用JPQL定义的,也可能用SQL定义的。
Query createNativeQuery(String sqlString):根据原生SQL语句来创建一个查询。
Query createNativeQuery(String sqlString,Class resultClass):根据原生SQL语句来创建一个查询。
Query createNativeQuery(String sqlString,String resultSetMapping):根据原生SQL语句来创建一个查询。其中resultSetMapping用于对结果集进行自定义映射。
Query createQuery(String jpqlString):根据指定的JPQL语句来创建一个查询。
b、再是JPQL语句中参数设置参数值方式。
Query setParameter(String name,Object value):根据命名参数的名称为JPQL语句中的参数设置参数值。
c、最后在调用下面的Query方法来执行查询。
List getResultList():执行JPQL的select语句,查询后返回的是List。
Object getSingleResult():执行返回单个结果的select语句。
int executeUpdate():该方法主要用于执行JPQL中批量删除、批量更新的语句。
下面还有两个Query提供的非常方便的分页查询。
Query setFirstResults(int startPostsion):设置查询结果从第几条记录开始。
Query setMaxResults(int maxResult):设置查询最多返回几条记录。
这两个方法在使用的时候在执行查询方法前边使用。
详细的实现方法下篇见!