JSQL查询
JSQL
其特征与原生soL语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。
- sql:查询的是表和表中的字段
- jpql:查询的是实体类和类中的属性
查询全部 >> getResultList:直接将查询结果封装为list集合
sq1:SELECT * FROM cst_customer
jsql:from cn.itcast.domain.Customer (包名可以省略)
package cn.itcast.test;
import cn.itcast.utils.JpaUtils;
import org.junit.Test; import javax.persistence.*;
import java.util.List;
/**
* 测试Jpql查询
*/
public class JpqlTest {
/*
*查询全部
*jsql:from cn.itcast.domain.Customer (包名可以省略)
*sq1:SELECT * FROM cst_customer
*/
@Test
public void testFindAll() {
//1.获取entityManager对象
EntityManager em = JpaUtils.getEntityManager();
//2.开启事务
EntityTransaction tx = em.getTransaction();
tx.begin();
//3.查询全部
String jpql = "from Customer";
//调用em.createQuery(jpql)先创建一个对象query,接收一个jsql语句
//创建Query查询对象,query对象才是执行jqp1的对象
Query query = em.createQuery(jpql);
//发送查询,并封装结果集
List list = query.getResultList();
//遍历list并打印
for (Object o : list) {
System.out.println(o);
}
//4.提交事务
tx.commit();
//5.释放资源
em.close();
}}
使用jpql查询,统计客户的总数 >> getSingleResult:得到唯一的结果集
sq1:SELECT COUNT(cust_id)FROM cst_customer
jpql: select count(custId)from Customer
- 分页查询
>> getResultList:直接将查询结果封装为list集合
sq1:select*from cst_customer limit?,? 只写2,默认是0,2
jqp1:from Customer
@Test
public void testPage() {
//1.获取entityManager对象
EntityManager em = JpaUtils.getEntityManager();
//2.开启事务
EntityTransaction tx = em.getTransaction();
tx.begin();
//3.查询全部
String jpql = "from Customer";
//根据jsql语句创建Query查询对象
Query query = em.createQuery(jpql); //起始索引
query.setFirstResult(0);
//每页查询的条数
query.setMaxResults(2); //发送查询,并封装结果集
List list = query.getResultList();
//遍历list并打印
for (Object o : list) {
System.out.println(o);
}
//4.提交事务
tx.commit();
//5.释放资源
em.close();
}}
案例:查询客户名称以“黑马”开头的客户 >> getResultList:直接将查询结果封装为list集合
sq1:SELECT * FROM cst_customer WHERE cust_name LIKE ?
jpql : from Customer where custName like ?
//1.查询全部
String jpql = "from Customer where custname like ? ";
//2.根据jsql语句创建Query查询对象
Query query = em.createQuery(jpql); //3.对参数赋值--占位符参数
//第一个参数:占位符的索引位置(从1开始),第二个参数:取值
query.setParameter(1,"黑马%");
JSQL查询的更多相关文章
- SpringDataJpa入门案例及查询详细解析
SpringDataJpaSpring Data JPA 让我们解脱了DA0层的操作,基本上所有CRUD都可以依赖于它来实现,在实际的工作工程中,推荐使用Spring Data JPA+ORM(如:h ...
- 使用TSQL查询和更新 JSON 数据
JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...
- UWP 律师查询 MVVM
APP简介 律师查询是基于聚合数据的律师查询接口做的,这个接口目前处于停用状态,但是,由于我是之前申请的,所以,还可以用,应该是无法再申请了. 效果图 开发 一.HttpHelper 既然是请求接口的 ...
- Elasticsearch 5.0 中term 查询和match 查询的认识
Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...
- ASP.NET Aries 入门开发教程4:查询区的下拉配置
背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...
- ASP.NET Aries 入门开发教程3:开发一个列表页面及操控查询区
前言: Aries框架毕竟是开发框架,所以重点还是要写代码的,这样开发人员才不会失业,哈. 步骤1:新建html 建一个Html,主要有三步: 1:引入Aries.Loader.js 2:弄一个tab ...
- ExtJS 4.2 业务开发(二)数据展示和查询
本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统 ...
- 深入理解MySql子查询IN的执行和优化
IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
随机推荐
- kube-scheduler源码分析
kubernetes集群三步安装 kube-scheduler源码分析 关于源码编译 我嫌弃官方提供的编译脚本太麻烦,所以用了更简单粗暴的方式编译k8s代码,当然官方脚本在编译所有项目或者夸平台编译以 ...
- 浅谈NodeJS多进程服务架构基本原理
阅读目录 一:nodejs进程进化及多进程架构原理 二:node中child_process模块实现多进程 三:父子进程间如何通信? 四:理解cluster集群 回到顶部 一:nodejs进程进化及多 ...
- npm 一些有用的提示和技巧
生成 package.json 我们通常执行 npm init,然后开始添加 npm 请求的信息. 但是,如果我们不关心所有这些信息,并且希望保留默认值,那么对于 npm 请求的每一条数据,我们都按 ...
- 佳木斯集训Day3
D3是我的巅峰 D3的出题人毒瘤!!!T3放了一道莫队,我们全体爆炸,到现在只有一个奆老A掉了T3 据说lkh被晓姐姐D了 T1是个26进制数,当时在考场上想了好久才想到(太次了)注意需要处理一下溢出 ...
- 简洁实用Socket框架DotNettySocket
目录 简介 产生背景 使用方式 TcpSocket WebSocket UdpSocket 结尾 简介 DotNettySocket是一个.NET跨平台Socket框架(支持.NET4.5+及.NET ...
- c语言ld returned 1 exit status😂
在复习c语言过程中遇到, 问题:reverseLinkedList.exe: Permission denied collect2.exe: error: ld returned 1 exit sta ...
- (五)c#Winform自定义控件-复选框
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- hadoop2.7之作业提交详解(上)
根据wordcount进行分析: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; impo ...
- 云上RDS架构
概述 越来越多的企业选择上云,最基础的云服务就是IaaS(Infrastructure as a Service)服务,直观理解就是虚拟主机,用户不用再自建机房,自己购买服务器,而是直接向云厂商购买虚 ...
- 谈谈surging 微服务引擎 2.0的链路跟踪和其它新增功能
一.前言 surging是基于.NET CORE 服务引擎.初始版本诞生于2017年6月份,经过NCC社区二年的孵化,2.0版本将在2019年08月28日进行发布,经历二年的发展,已经全部攘括了微服务 ...