package com.shenyue.controller;
import com.shenyue.bean.Customer;
import com.shenyue.utils.JpaUtils;
import org.junit.jupiter.api.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;
/*
* 測試jpql查詢
*
* */
public class JpqlTest {
/*
* 查詢?nèi)? * jpql:from Customer
* sql色冀, select * from cst_customer
* */
@Test
public void testFindAll() {
// 1.獲取EntityManager對象
EntityManager em = JpaUtils.getEntityManager();
// 2.開啟事務(wù)
EntityTransaction tx = em.getTransaction();
tx.begin();
// 3.查詢?nèi)? String jpql ="from com.shenyue.bean.Customer";
Query query = em.createQuery(jpql);//創(chuàng)建Query查詢對象,query對象才是執(zhí)行jpql的對象
// 發(fā)送查詢并封裝結(jié)果集
List resultList = query.getResultList();
for (Object obj: resultList){
System.out.println(obj);
}
// 4.提交事務(wù)
tx.commit();
// 5.釋放資源
em.close();
}
/*
* 排序查詢: 倒序查詢?nèi)靠蛻簦ǜ鶕?jù)id倒敘)
* sql: select* from ces_customer order by id desc
* jpql:from Customer order by custId desc
*
* 進(jìn)行jpql查詢
* 1.創(chuàng)建query查詢對象
* 2.對參數(shù)進(jìn)行賦值
* 3.查詢但金,并得到返回結(jié)果
*
* */
@Test
public void testOrders() {
// 1.獲取EntityManager對象
EntityManager em = JpaUtils.getEntityManager();
// 2.開啟事務(wù)
EntityTransaction tx = em.getTransaction();
tx.begin();
// 3.查詢?nèi)? String jpql ="from com.shenyue.bean.Customer order by custId desc";
Query query = em.createQuery(jpql);//創(chuàng)建Query查詢對象膜蠢,query對象才是執(zhí)行jpql的對象
// 發(fā)送查詢并封裝結(jié)果集
List resultList = query.getResultList();
for (Object obj: resultList){
System.out.println(obj);
}
// 4.提交事務(wù)
tx.commit();
// 5.釋放資源
em.close();
}
/*
* 使用jpql查詢笛辟,統(tǒng)計客戶的總數(shù)
* sql:select count(cust_id) from cst_customer
* jpql:select count(custId) from Customer
* */
@Test
public void testCount() {
// 1.獲取EntityManager對象
EntityManager em = JpaUtils.getEntityManager();
// 2.開啟事務(wù)
EntityTransaction tx = em.getTransaction();
tx.begin();
// 3.查詢?nèi)?// i.根據(jù)jpql語句創(chuàng)建Query查詢對象
String jpql ="select count(custId) from Customer";
Query query = em.createQuery(jpql);//創(chuàng)建Query查詢對象,query對象才是執(zhí)行jpql的對象
// ii。對參數(shù)賦值
// iii.發(fā)送查詢券勺,并封裝結(jié)果
/*
* getResultList:直接將查詢結(jié)果封裝為list集合
* getSingleResult:得到唯一的結(jié)果集
* */
Object result = query.getSingleResult();
System.out.println(result);
// 4.提交事務(wù)
tx.commit();
// 5.釋放資源
em.close();
}
/*
* 分頁查詢
* sql:select * from cst_customer limit ?,?
* jpql: from Customer
* */
@Test
public void testPaged() {
// 1.獲取EntityManager對象
EntityManager em = JpaUtils.getEntityManager();
// 2.開啟事務(wù)
EntityTransaction tx = em.getTransaction();
tx.begin();
// 3.查詢?nèi)?// i.根據(jù)jpql語句創(chuàng)建Query查詢對象
String jpql ="from Customer";
Query query = em.createQuery(jpql);//創(chuàng)建Query查詢對象,query對象才是執(zhí)行jpql的對象
// ii灿里。對參數(shù)賦值
// 起始索引
query.setFirstResult(0);
// 每頁查詢的條數(shù)
query.setMaxResults(2);
// iii.發(fā)送查詢关炼,并封裝結(jié)果
/*
* getResultList:直接將查詢結(jié)果封裝為list集合
* getSingleResult:得到唯一的結(jié)果集
* */
List list = query.getResultList();
for (Object obj:list){
System.out.println(obj);
}
// 4.提交事務(wù)
tx.commit();
// 5.釋放資源
em.close();
}
/*
* 條件查詢
* */
@Test
public void testCondition() {
// 1.獲取EntityManager對象
EntityManager em = JpaUtils.getEntityManager();
// 2.開啟事務(wù)
EntityTransaction tx = em.getTransaction();
tx.begin();
// 3.查詢?nèi)?// i.根據(jù)jpql語句創(chuàng)建Query查詢對象
String jpql ="from Customer where custName like ?";
Query query = em.createQuery(jpql);//創(chuàng)建Query查詢對象,query對象才是執(zhí)行jpql的對象
// ii匣吊。對參數(shù)賦值--占位符
// 第一個參數(shù)儒拂,占位符的索引位置(從1開始)寸潦,第二個取值
query.setParameter(1,"銀%");
// iii.發(fā)送查詢,并封裝結(jié)果
/*
* getResultList:直接將查詢結(jié)果封裝為list集合
* getSingleResult:得到唯一的結(jié)果集
* */
List list = query.getResultList();
for (Object obj:list){
System.out.println(obj+"0000000");
}
// 4.提交事務(wù)
tx.commit();
// 5.釋放資源
em.close();
}
}
2019-10-16Jpql的使用方法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門统倒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寨典,“玉大人,你說我怎么就攤上這事房匆∷食桑” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵浴鸿,是天一觀的道長井氢。 經(jīng)常有香客問我,道長岳链,這世上最難降的妖魔是什么花竞? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮掸哑,結(jié)果婚禮上约急,老公的妹妹穿的比我還像新娘。我一直安慰自己苗分,他們只是感情好厌蔽,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著摔癣,像睡著了一般奴饮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上择浊,一...
- 文/蒼蘭香墨 我猛地睜開眼危彩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泳桦?” 一聲冷哼從身側(cè)響起汤徽,我...
- 正文 年R本政府宣布啊鸭,位于F島的核電站锹淌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赠制。R本人自食惡果不足惜赂摆,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钟些。 院中可真熱鬧烟号,春花似錦、人聲如沸厘唾。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽抚垃。三九已至,卻和暖如春趟大,著一層夾襖步出監(jiān)牢的瞬間鹤树,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 小學(xué)語文修改病句的方法 修改病句是小學(xué)語文考試中常見的題型够掠,在修改病句之前,我們應(yīng)該清晰的了解有哪些病句現(xiàn)象茄菊,下面...
- 上班第二天买羞,有點小忙袁勺,有客戶咨詢就要滿足客戶的提問,有問必答是我的宗旨畜普,但是也有我解決不了的問題期丰,那只有問技術(shù)...
- 風(fēng)居住的地方 文/一樹繁花 在陽光照不到的地方 就是風(fēng)居住的地方 風(fēng)也喜怒哀樂 才會緩疾冷暖 讓季節(jié)以風(fēng)的節(jié)奏 交...