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 ...
随机推荐
- 配置多个JDK存在的问题与解决方案 (亲测可用)
安装多个JDK时的技巧 (亲测可用) 我的电脑本来是JDK8的,后来的想在不同的JDK版本下测试JDK的垃圾回收器. 一开始的的思路是,先安装JDK,为每个JDK配置自己的家目录,然后在想用哪个版本的 ...
- selenium定时签到程序
selenium定时签到程序 定时任务 # -*- coding: utf-8 -*- import time import os import sched import datetime from ...
- Oracle中ROWNUM伪列和ROWID伪列的用法与区别
做过Oracle分页的人都知道由于Oracle中没有像MySql中limit函数以及SQLServer中的top关键字等,所以只能通过伪列的方式去满足分页功能,在此,不谈分页方法,只从根本上去介绍这两 ...
- WPF ContextMenu+VisualTreeHelper实现删除控件操作
<UserControl MouseRightButtonDown="UserControl_MouseRightButtonDown" > <UserC ...
- sqoop增量导数据
sqoop要实现增量导入参数到hive或者hdfs 1.需要在mysql中创建可以自动更新的字段,当插入数据时和更新数据时改字段自动更新,如图中update_time,当数据插入时会记录更新为插入时间 ...
- Hadoop学习(8)-scala环境配置及简单使用
学习scala的原因主要是因为以后要学习spark. scala是运行在java虚拟机上的,它是一种面向对象和函数式编程结合的语言,并兼容java程序 相对于java更简单 安装scala前提你要保证 ...
- 小X的逆袭
[问题描述]毕业于普通本科的小x 一直自称是资深屌丝.谁又能想到,如此不起眼的小x 在历经重重面试环节后,竟然如愿以偿加入了心仪已久的腾讯公司!正所谓野百合也有春天,屌丝也有逆袭的那一天!一段时间以后 ...
- 使用sar进行性能分析
sar可用于监控Linux系统性能,帮助我们分析性能瓶颈.sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数. ...
- ImageLoader_显示图片
public class MainActivity extends AppCompatActivity { private ListView lv; private List<Bean.Resu ...
- NLP(十五)让模型来告诉你文本中的时间
背景介绍 在文章NLP入门(十一)从文本中提取时间 中,笔者演示了如何利用分词.词性标注的方法从文本中获取时间.当时的想法比较简单快捷,只是利用了词性标注这个功能而已,因此,在某些地方,时间的识别 ...