Java持久层的三种查询方式
来源:互联网 发布:网络缓存级别 影音先锋 编辑:程序博客网 时间:2024/05/06 15:26
Java JPA有三种查询方式:
1)JPQL
2)Criteria API
3)SQL
下面一一详解。
一、本地SQL查询
SQL是标准化的查询语言,用于管理数据。下面的例子说明了怎样实现本地SQL查询:上面的例子告诉我们3件事:
1)用JPA建立查询,无需学习新的查询语言;
2)创建的查询没有类型安全,在使用前必须计算查询结果;
3)在运行程序前必须验证查询的拼写或语法是否有错误。
而且SQL查询会指定数据库的模式,因此除非必要,我们都应该避免使用此方式。
二、JPQL查询
JPQL是基于字符串的查询语言,语法类似于SQL。因此学习JPQL相当容易,只要有一定的SQL基础。看下面的代码:上面的例子告诉我们3件事:
1)创建的查询是类型安全的,我们不必计算查询的结果;
2)JPQL查询字符串是易读、易于理解的;
3)创建的查询字符串在编译期间不会被验证。
JPQL对于静态查询是一个好办法。换句话说们,如果很多查询参数总是相同的,那么JPQL是我们的首选。但是,JPQL实现动态查询就显得很繁琐了。
三、Criteria API
Criteria API用于解决对接第三方ORM框架时让JPQL标准化。它用于构建查询定义对象,此对象会被翻译成可执行的SQL查询。下面的代码说明了这个问题:上面的例子告诉我们3件事:
1)创建的查询是类型安全的,不必计算查询的结果;
2)代码不如SQL或JPQL那么易读;
3)由于是使用Java API处理,Java编译器会确保查询的语法正确。
Criteria API对于创建动态查询是一个极好的工具。它使得创建动态查询更简便,因为我们处理的是对象,而不是处理查询的字符串。缺点在于随着查询的复杂度的增加,,查询定义对象的创建也会变得很繁琐,代码会更难读。
0 0
- Java持久层的三种查询方式
- Java持久层的三种查询方式
- Java持久层的三种查询方式
- Java持久层的三种查询方式
- java中数据持久层查询操作
- 域对象在持久化层的三种状态
- 对SSH三种框架及表示层、业务层和持久层的理解
- SSH三种框架及表示层、业务层和持久层的理解
- SSH三种框架及表示层、业务层和持久层的理解
- SSH、SSM三种框架及表示层、业务层和持久层的理解
- 数据持久层(01)_三种持久化方法
- ActiveMQ持久化消息的三种方式
- Android中数据持久化的三种方式
- ActiveMQ持久化消息的三种方式
- ActiveMQ持久化消息的三种方式
- ActiveMQ持久化消息的三种方式
- ActiveMQ持久化消息的三种方式
- ActiveMQ持久化消息的三种方式
- n个骰子的点数之和
- 这几条UI原则可以让你的设计提高(中)
- 头尾式动画
- 几种计算机视觉中常用的聚类算法(K-means, Agglomerative clustering, Mean shift, Spectral clustering)
- Scala 中的foreach和map方法比较
- Java持久层的三种查询方式
- MyBatis学习笔记
- 操作系统与网络实现 之十八(丙)
- PAT_乙级 1009 说反话
- C++单例模式如何进行释放控制
- Android Studio快捷键(Window,Mac)
- 2016.11.1第二题 音量调节 codevs 2278
- 62 & 63. Unique Paths I & II
- ubuntu如何在线安装java7?