JPQL查询

JPQL查询

1 jpql的介绍
sql:查询的是表和表中的字段。
jpql:查询的是实体类和类中的属性。
jpql和sql语句的语法相似。
JPQL全称Java Persistence Query Language
基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起•使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。
其特征与原生SQL语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。
2 查询全部
编写测试代码如下:

package com.txw.test;import com.txw.utils.JpaUtils;
import org.junit.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;
/*** 测试jqpl* @author: Adair*/
@SuppressWarnings("all")         // 注解警告信息
public class JpqlTest {/*** 查询全部*      jqpl:from com.txw.domain.Customer*      sql:SELECT * FROM cst_customer*/@Testpublic void testFindAll() {// 1.获取entityManager对象EntityManager em = JpaUtils.getEntityManager();// 获取事务对象EntityTransaction tx = em.getTransaction();// 2.开启事务tx.begin();// 3.查询全部String jpql = "from com.txw.domain.Customer";// 创建Query查询对象,query对象才是执行jqpl的对象Query query = em.createQuery(jpql);// 发送查询,并封装结果集List list = query.getResultList();for (Object obj : list) {System.out.println(obj);}// 4.提交事务tx.commit();// 5.释放资源em.close();}
}

运行结果如图所示:
在这里插入图片描述
3 排序
编写测试的代码如下:

package com.txw.test;import com.txw.utils.JpaUtils;
import org.junit.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;
/*** 测试jqpl* @author: Adair*/
@SuppressWarnings("all")         // 注解警告信息
public class JpqlTest {/*** 排序查询: 倒序查询全部客户(根据id倒序)*      sql:SELECT * FROM cst_customer ORDER BY cust_id DESC*      jpql:from Customer order by custId desc* 进行jpql查询*      1.创建query查询对象*      2.对参数进行赋值*      3.查询,并得到返回结果*/@Testpublic void testFindAll() {// 1.获取entityManager对象EntityManager em = JpaUtils.getEntityManager();// 获取事务对象EntityTransaction tx = em.getTransaction();// 2.开启事务tx.begin();// 3.查询全部String jpql = "from Customer order by custId desc";// 创建Query查询对象,query对象才是执行jqpl的对象Query query = em.createQuery(jpql);// 发送查询,并封装结果集List list = query.getResultList();for (Object obj : list) {System.out.println(obj);}// 4.提交事务tx.commit();// 5.释放资源em.close();}
}

运行结果如图所示:在这里插入图片描述
4 统计查询
编写测试的代码如下:

package com.txw.test;import com.txw.utils.JpaUtils;
import org.junit.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;
/*** 测试jqpl* @author: Adair*/
@SuppressWarnings("all")         // 注解警告信息
public class JpqlTest {/*** 使用jpql查询,统计客户的总数*      sql:SELECT COUNT(cust_id) FROM cst_customer*      jpql:select count(custId) from Customer*/@Testpublic void testCount() {// 1.获取entityManager对象EntityManager em = JpaUtils.getEntityManager();// 获取事务对象EntityTransaction tx = em.getTransaction();// 2.开启事务tx.begin();// 3.查询全部// 根据jpql语句创建Query查询对象String jpql = "select count(custId) from Customer";Query query = em.createQuery(jpql);// 对参数赋值// 发送查询,并封装结果/*** getResultList : 直接将查询结果封装为list集合* getSingleResult : 得到唯一的结果集*/Object result = query.getSingleResult();System.out.println(result);// 4.提交事务tx.commit();// 5.释放资源em.close();}
}

运行结果如图所示:在这里插入图片描述
5 分页查询
编写测试的代码如下:

package com.txw.test;import com.txw.utils.JpaUtils;
import org.junit.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;
/*** 测试jqpl* @author: Adair*/
@SuppressWarnings("all")         // 注解警告信息
public class JpqlTest {/*** 分页查询*      sql:select * from cst_customer limit 0,2*      jqpl : from Customer*/@Testpublic void testPaged() {// 1.获取entityManager对象EntityManager em = JpaUtils.getEntityManager();// 获取事务对象EntityTransaction tx = em.getTransaction();// 2.开启事务tx.begin();// 3.查询全部// 根据jpql语句创建Query查询对象String jpql = "from Customer";Query query = em.createQuery(jpql);// 对参数赋值 -- 分页参数// 起始索引query.setFirstResult(0);//每页查询的条数query.setMaxResults(2);// 发送查询,并封装结果/*** getResultList : 直接将查询结果封装为list集合* getSingleResult : 得到唯一的结果集*/List list = query.getResultList();for(Object obj : list) {System.out.println(obj);}// 4.提交事务tx.commit();// 5.释放资源em.close();}
}

运行结果如图所示:在这里插入图片描述
6 条件查询
编写测试的代码如下:

package com.txw.test;import com.txw.utils.JpaUtils;
import org.junit.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;
/*** 测试jqpl* @author: Adair*/
@SuppressWarnings("all")         // 注解警告信息
public class JpqlTest {/*** 条件查询*     案例:查询客户名称以‘学无止路’开头的客户*          sql:SELECT * FROM cst_customer WHERE cust_name LIKE  ?*          jpql : from Customer where custName like ?*/@Testpublic void testCondition() {// 1.获取entityManager对象EntityManager em = JpaUtils.getEntityManager();// 获取事务对象EntityTransaction tx = em.getTransaction();// 2.开启事务tx.begin();// 3.查询全部// 根据jpql语句创建Query查询对象String jpql = "from Customer where custName like ? ";Query query = em.createQuery(jpql);// 对参数赋值 -- 占位符参数//第一个参数:占位符的索引位置(从1开始),第二个参数:取值query.setParameter(1,"学无止路%");// 发送查询,并封装结果/*** getResultList : 直接将查询结果封装为list集合* getSingleResult : 得到唯一的结果集*/List list = query.getResultList();for(Object obj : list) {System.out.println(obj);}// 4.提交事务tx.commit();// 5.释放资源em.close();}
}

运行结果如图所示:在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143479.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

JPQL详解

前提 最近在改bug的时候发现了自己的缺点,在改前端bug的时候非常顺利顺手。但是在改后端bug的时候如果遇到不是太难的问题还可以解决,但是一到难点感觉自己就懵逼! 所以讲解了关于JPQl相关内容 JPA 在说jpql之前必须要说一下什么是JPA&…

JPA(4) JPQL一些简单的查询语法

JPQL --> JPA Query Language --> JPA的查询语句 (另外HQL:Hibernate的查询语句) JPQL本质:JPA通过antlr-2.7.7.jar将JPQL编译成sql并且封装执行的。 JPQL和SQL区别?? --> 它们查询的关键字都是一样的&#xff…

6月3号抖音显示服务器维护中,抖音搜索功能升级维护 期间无法进行用户搜索

这两天有很多小伙伴说抖音上的搜索功能搜不到人了,这是怎么回事呢?其实,这两天,抖音的搜索功能正在升级维护,所以导致搜索功能暂时无法使用。 类别:影音娱乐 大小:210.36M 语言&#xff1a…

java抖音获取用户信息失败_为什么抖音用id搜不到用户?抖音用id搜不到用户的原因与解决方法...

在抖音短视频上,网友可以通过抖音id来搜索指定的抖音用户,并添加为好友,不过,这几天,不断有网友反映一个问题,那就是:抖音用id搜不到用户,那么,为什么抖音用id搜不到用户…

【已解决】抖音如何取消关注已注销的账户

文章目录 1. 按2. 操作步骤 1. 按 我们有时候会发现自己的关注列表里有一些用户显示该用户已注销,这时我们想取消关注,但是却发现没有取消关注按钮,怎么办呢?其实我们可以记下这个账号的名字,然后到关注列表的最上方搜…

最近抖音上虚拟元宇宙项目-猜歌名,代码解析

介绍一下最近抖音上元宇宙虚拟项目猜歌名,直播游戏。用户互动猜歌名,30秒后自动切歌。 CSDN项目源码:https://download.csdn.net/download/u010978757/85326344 类似的弹幕互动游戏除了猜歌名,还有挤地铁、广场舞和舞厅蹦迪的&a…

抖音小店无货源是不是在割韭菜?

哈喽,大家好,我是布丁。 最近很多小伙伴私信布丁,问抖音小店无货源是不是在割韭菜? 今天布丁腾出了些时间,来和小伙伴们分享一下抖音小店无货源。希望能帮助小伙伴解决问题。 抖音小店 抖音小店依托抖音,所以会获得…

抖音快手短视频如何快速上热门

抖音快手短视频怎么上热门?这是许多抖友的一个烦恼! 抖音快手短视频怎么上热门?这也是许多都有的一个梦想! 抖音快手短视频怎么火,抖音快手短视频怎么上热门,相信玩抖音快手短视频的人都想知道其中的技巧。今天我们就把最详细的教程分享给大家。 下面分…

抖音小店无货源怎么做?具体步骤讲解,经验分享

哈喽,大家好,我是布丁。 废话不多说,直接上干货。 抖音小店无货源是什么? 抖音小店就是在抖音上开一家小店,抖音小店是一个电商平台,无货源是一种操作模式。 无货源模式就是在网上采集其他店铺的商品&a…

抖音快手短视频剪辑工具

新媒体短视频运营中短视频制作是较为重要的一环,而短视频制作时选择一款适合的短视频剪辑工具会达到事半功倍的效果,你的短视频需要深入用户内心,契合短视频自身的特色和要求,否则吐血写的脚本、拍完视频信心满满准备剪视频打开电…

抖音快手短视频平台营销技巧

随着碎片化的加剧,短视频平台依靠其时长短、数据流量的优势持续吸引大量用户。而今年的疫情危机,给社会带来了非常大的影响。在这次疫情中,在承担社会责任的同时,抖音快手短视频平台的逆转营销也是做得很成功,这种平台…

抖音快手短视频推广方式

之前的快手短视频主要集中在三四线城市以及农村等消费力不强的用户群体上,没能有力的抓住主流用户的眼光;如今在一二线城市大放异彩的抖音短视频让厂商们再也无法无视短视频对于用户的吸引力。有了短视频这一全新渠道,怎么更为有效的利用渠道成了各级厂商…

抖音短视频运营指南

最初在中国的视频分享应用程序刚刚在全球激增,成为了2019年全球青年最热的地方。而且,在人群中,品牌营销人员紧跟它的步伐。但是抖音并不是您常规的即插即用营销平台,因为它的用户具有很高的洞察力,任何感觉不到“真实…

当年轻人开始拼命戒抖音

原创 | 开菠萝财经 作者 | 金玙璠 编辑 | 瑟曦 “再玩一次就戒掉抖音。” “戒抖音第X天。” “有没有戒掉抖音的好方法?我又‘复吸’了。” 就像不知道何时对抖音上瘾一样,不知道从什么时候起,越来越多年轻人开始寻求戒掉抖音的方法&#xf…

云媒易:抖音短视频推广小技巧汇总

很多企业和品牌做短视频推广的关键是提高自身形象和产品曝光度,让更多的消费者认识到自己的品牌和产品,甚至进一步将其转化为粉丝和客户。那怎么去做短视频推广,这些技巧请你先明白。 1、做短视频要有的3种心态。第一,all in心态&…

抖音直播新号怎么起号?抖音直播间不进人怎么办?

对于抖音直播新号起号来说,最大的困扰就是直播间不进人、人来了留不住、场观高但是没转化,那么如何才能让抖音直播间顺利渡过冷启动期呢?抖音直播间起号的3个小技巧看好了! 1.快速打标签,找到精准目标人群 抖音标签是…

抖音快手短视频功能解读

很多人玩抖音快手都不知道抖音快手里面有哪些功能,别人一天到晚打开抖音快手,出了一直往下滑这刷抖音快手短视频,都不知道抖音快手还有这些功能权限,抖音快手短视频功能解读带着大家一起扫盲一下抖音快手的功能权限。 dou功能&…

实操揭秘:抖音短视频常见问题解答(收藏必备):国仁楠哥

到底是为什么我们的抖音短视频播放量就是起不来呢? 难道真的是玄学吗?其实并没有那么神奇,播放量起不来很有可能是因为运营者没有养号。那么下面给大家深挖了16条抖音常见的各种问题,一起来看看吧。 01 、自己的账号能不…

抖音运营方针策略

抖音,是一款可以拍短视频的音乐创意短视频社交软件,该软件于2016年9月上线,是一个专注年轻人音乐短视频社区平台。用户可以通过这款软件选择歌曲,拍摄音乐短视频,形成自己的作品。 抖音运营是一款社交类的软件&#xf…

详解抖音壁纸号的具体玩法,变现方法容易吗?

去年底,我实打实做了俩抖音壁纸号,把整套玩法亲自摸索了一遍,为此我也花费了 1299 元成本,主要花在了抖音账号认证和视频剪辑软件的会员开通。 (更多精彩干货请关注共众号:萤火宠) 其实抖音壁…