JPQL语言和Query接口简解

简介: JPQL语言和Query接口简解

【1】JPQL语言

JPQL语言,即 Java Persistence Query Language 的简称。

JPQL 是一种和 SQL 非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的 SQL 查询,从而屏蔽不同数据库的差异。

JPQL语言的语句可以是 select 语句、update 语句或delete语句,它们都通过 Query 接口封装执行。

注意:JPQL语言不支持insert语句!

【2】Query接口

javax.persistence.Query接口封装了执行数据库查询的相关方法。调用 EntityManager 的createQuery、create NamedQuery 及 createNativeQuery 方法可以获得查询对象,进而可调用 Query 接口的相关方法来执行查询操作。

Query接口的主要方法

① int executeUpdate()

用于执行update或delete语句。

② List getResultList()

用于执行select语句并返回结果集实体列表。

③ Object getSingleResult()

用于执行只返回单个结果实体的select语句。

④ Query setFirstResult(int startPosition)

用于设置从哪个实体记录开始返回查询结果。

⑤ Query setMaxResults(int maxResult)

用于设置返回结果实体的最大数。与setFirstResult结合使用可实现分页查询。

⑥ Query setFlushMode(FlushModeType flushMode)

设置查询对象的Flush模式。

参数可以取2个枚举值:

FlushModeType.AUTO 为自动更新数据库记录;
FlushMode Type.COMMIT 为直到提交事务时才更新数据库记录。

⑦ setHint(String hintName, Object value)

设置与查询对象相关的特定供应商参数或提示信息。参数名及其取值需要参考特定 JPA 实现库提供商的文档。如果第二个参数无效将抛出IllegalArgumentException异常。

⑧ setParameter(int position, Object value)

为查询语句的指定位置参数赋值。Position 指定参数序号,value 为赋给参数的值。

⑨ setParameter(int position, Date d, TemporalType type)

为查询语句的指定位置参数赋 Date 值。

osition 指定参数序号,value 为赋给参数的值,temporalType 取 TemporalType 的枚举常量,包括 DATE、TIME 及 TIMESTAMP 三个。用于将 Java 的 Date 型值临时转换为数据库支持的日期时间类型(java.sql.Date、java.sql.Time及java.sql.Timestamp)。


⑩ setParameter(int position, Calendar c, TemporalType type)

为查询语句的指定位置参数赋 Calenda r值。position 指定参数序号,value 为赋给参数的值,temporalType 的含义及取舍同前。

(11) setParameter(String name, Object value)

为查询语句的指定名称参数赋值。

(12) setParameter(String name, Date d, TemporalType type)

为查询语句的指定名称参数赋 Date 值。TemporalType type用法同前。

(13) setParameter(String name, Calendar c, TemporalType type)

为查询语句的指定名称参数设置Calendar值。

name为参数名,其它同前。

该方法调用时如果参数位置或参数名不正确,或者所赋的参数值类型不匹配,将抛出 IllegalArgumentException 异常。



目录
相关文章
|
6月前
|
SQL Java 数据库连接
【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
175 0
|
SQL Oracle 关系型数据库
PHP从零开始--字段修饰符&&数据操作&&SQL语言
PHP从零开始--字段修饰符&&数据操作&&SQL语言
PHP从零开始--字段修饰符&&数据操作&&SQL语言
|
Linux
ABAP 740的新语法 - 使用BO association的方式进行内表连接操作
ABAP 740的新语法 - 使用BO association的方式进行内表连接操作
210 0
ABAP 740的新语法 - 使用BO association的方式进行内表连接操作
|
SQL 存储 索引
SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法
原文:SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法   本文出处: http://www.cnblogs.com/wy123/p/5958047.html    最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种写法孰优孰劣,该选用那种写法,以及各种写法优缺点,本文以一个简单的查询存储过程为例,简单说一下各种写法的区别,以及该用那种写法专业DBA以及熟悉数据库的同学请无视。
1057 0
|
SQL Java 数据库连接
Hibernate中执行NativeSQL语句查询返回自定义类型的POJO实例的List(多表查询)
Hibernate中定义了hql的概念,简单地说就是,为java的码农提供了一套类似于sql的语法,但是数据表名变成了PO名,数据字段名变成了PO中属性成员名,并把这种语法称为hql。优点就是:hql看上去是面向对象的,码农不需要知道数据库中数据表的结构,只需要依据PO编写面向对象的数据库增删改查的语句。
4162 0
|
SQL Java 数据库
GreenDAO 3.2 源码分析(1):查询语句与Query实例的构造
greenDAO是一款优秀的对象关系映射(ORM)框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。和复杂麻烦的Android原生数据库API相比较,greenDAO可谓是简单实用,功能强大,不仅性能突出,而且有着丰富文档资料,是当前最为活跃的Android ORM框架。
1115 0
|
SQL 缓存 Java
hibernate的hql 语法与详细解释
HQL查询 HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更 加面向对象的封装。
1248 0