JPQL全称Java Persistence Query Language

package com.ytkj.entity;

import javax.persistence.*;
import java.io.Serializable; /**
* @Entity
* 作用:指定当前类是实体类。
* @Table
* 作用:指定实体类和表之间的对应关系。
* 属性:
* name:指定数据库表的名称
* @Id
* 作用:指定当前字段是主键。
* @GeneratedValue
* 作用:指定主键的生成方式。。
* 属性:
* strategy :指定主键生成策略。
* @Column
* 作用:指定实体类属性和数据库表之间的对应关系
* 属性:
* name:指定数据库表的列名称。
* unique:是否唯一
* nullable:是否可以为空
* inserttable:是否可以插入
* updateable:是否可以更新
* columnDefinition: 定义建表时创建此列的DDL
* secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字搭建开发环境[重点]
*
* 客户实体类
* 配置映射关系
* 实体类和表映射
* 实体类属性和表字段映射
*/
@Entity
@Table(name = "cst_customer")
public class Customer implements Serializable {
/**
* 声明主键配置
*/
@Id
/**
* 配置主键的生成策略
*/
@GeneratedValue(strategy = GenerationType.IDENTITY)
/**
* 指定实体类属性和数据库表之间的对应关系
*/
@Column(name ="cust_id")
private Long custId;//客户主键
@Column(name = "cust_name")
private String custName;//客户名称
@Column(name ="cust_source" )
private String custSource;//客户来源
@Column(name = "cust_industry")
private String custIndustry;//客户行业
@Column(name ="cust_level")
private String custLevel;//客户级别
@Column(name ="cust_address")
private String custAddress;//客户地址
@Column(name = "cust_phone")
private String custPhone;//客户电话 public Long getCustId() {
return custId;
} public void setCustId(Long custId) {
this.custId = custId;
} public String getCustName() {
return custName;
} public void setCustName(String custName) {
this.custName = custName;
} public String getCustSource() {
return custSource;
} public void setCustSource(String custSource) {
this.custSource = custSource;
} public String getCustIndustry() {
return custIndustry;
} public void setCustIndustry(String custIndustry) {
this.custIndustry = custIndustry;
} public String getCustLevel() {
return custLevel;
} public void setCustLevel(String custLevel) {
this.custLevel = custLevel;
} public String getCustAddress() {
return custAddress;
} public void setCustAddress(String custAddress) {
this.custAddress = custAddress;
} public String getCustPhone() {
return custPhone;
} public void setCustPhone(String custPhone) {
this.custPhone = custPhone;
} @Override
public String toString() {
return "Customer{" +
"custId=" + custId +
", custName='" + custName + '\'' +
", custSource='" + custSource + '\'' +
", custIndustry='" + custIndustry + '\'' +
", custLevel='" + custLevel + '\'' +
", custAddress='" + custAddress + '\'' +
", custPhone='" + custPhone + '\'' +
'}';
}
}

  

package com.ytkj.test;

import com.ytk.utils.JpaUtils;
import org.junit.Test; import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List; /**
* jpql测试
*/
public class JpqlTest {
/**
* 查询全部
*/
@Test
public void findAll(){
EntityManager entityManager = JpaUtils.getEntityManager();
//开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin(); //创建query对象 操作实体类而不是直接取操作数据库
String jpql="from Customer";
Query query = entityManager.createQuery(jpql); //查询
List list = query.getResultList();
for (Object o : list) {
System.out.println(o);
} //5.提交事务
transaction.commit();
//6.释放资源
entityManager.close();
} /**
* 排序查询
*/
@Test
public void findAllOrderBy(){
EntityManager entityManager = JpaUtils.getEntityManager();
//开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin(); //创建query对象 操作实体类而不是直接取操作数据库
String jpql="from Customer order by custId desc";
Query query = entityManager.createQuery(jpql); //查询
List list = query.getResultList();
for (Object o : list) {
System.out.println(o);
} //5.提交事务
transaction.commit();
//6.释放资源
entityManager.close();
} /**
* 查询总数
*/
@Test
public void getCount(){
EntityManager entityManager = JpaUtils.getEntityManager();
//开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin(); //创建query对象 操作实体类而不是直接取操作数据库
String jpql="select count(custId) from Customer ";
Query query = entityManager.createQuery(jpql);
//查询
Object result = query.getSingleResult();
System.out.println(result);
//5.提交事务
transaction.commit();
//6.释放资源
entityManager.close();
} /**
* 分页查询
*/
@Test
public void getByPage(){
EntityManager entityManager = JpaUtils.getEntityManager();
//开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin(); //创建query对象 操作实体类而不是直接取操作数据库
int pageNum=0;
int pageSize=2;
String jpql=" from Customer";
Query query = entityManager.createQuery(jpql);
//对分页参数赋值
query.setFirstResult(pageNum);
query.setMaxResults(pageSize);
//查询
List list = query.getResultList();
for (Object o : list) {
System.out.println(o);
}
//5.提交事务
transaction.commit();
//6.释放资源
entityManager.close();
} /**
* 条件查询
*/
@Test
public void getByCondition(){
EntityManager entityManager = JpaUtils.getEntityManager();
//开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin(); //创建query对象 操作实体类而不是直接取操作数据库
String jpql=" from Customer where custName like ?";
Query query = entityManager.createQuery(jpql);
//对占位符参数赋值
query.setParameter(1,"zhe%");
//查询
List list = query.getResultList();
for (Object o : list) {
System.out.println(o);
}
//5.提交事务
transaction.commit();
//6.释放资源
entityManager.close();
} }

  

jpql简单l查询的更多相关文章

  1. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)

    使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...

  2. SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

    上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...

  3. ASP.NET MVC 学习4、Controller中添加SearchIndex页面,实现简单的查询功能

    参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-method ...

  4. mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】

    1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都 ...

  5. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  6. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

  7. sql最简单的查询语句

    -- 2 **************************************************** -- 最简单的查询语句 -- 2.1 ----------------------- ...

  8. T-SQL 简单子查询

    1.使用变量的方式实现的查询 use StudentManageDB go declare @StuId int --查询张永利学号 select @StuId=StudentId from Stud ...

  9. MySql 简单统计查询消耗时间脚本

    MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...

随机推荐

  1. Kali开启SSH服务

    1.    一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修 ...

  2. js判断一件商品加还是减

    <div class="right"> <div onclick="javascript: ClickJian(this);" data-i= ...

  3. v-cloakd的应用场景和使用方法

    使用vue构建前端应用,加载应用后页面可能会出现闪烁: <div id="app" v-cloak> {{message}} </div> 例如上述场景,应 ...

  4. Java_3.Java帮助文档

    1.Oracle的在线帮助文档 http://docs.oracle.com/javase/8/docs/api 2.jdk源码内容(包含5个部分) [以下内容参考至:https://blog.csd ...

  5. maven项目使用tomcat启动报错:Server Tomcat v8.5 Server at localhost failed to start

    背景说明:1)该项目为maven项目,使用的maven的本地仓库里有不少之前使用过下载的jar包: 2)从svn下载该项目后,无报错情况: 3)部署到tomcat启动报错 如下 : 4)在网上搜索了很 ...

  6. [unity基础教程]Unity3D实现动态载入游戏资源(转)

    用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态载入.比方想载入一个大场景的资源,不应该在游戏的開始让用户长时间等待全部资源的载入完成.应该优先载入用户附近的场景资源.在游 ...

  7. 使用VS 2019发布.net core程序并部署到IIS的最新教程

    不管你是使用.net core开发的是web api还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.net core程序部署到IIS的朋友,可以看看这篇手把手教你部署.net ...

  8. boby标签中相关标签

    有关字体相关的标签 h1~h6   字体大小 标题使用<h1>至<h6>标签进行定义,<h1>定义最大的标题,<h6>定义最小的标题.具有 align属 ...

  9. C#读取Xml中出现”&”等特殊符号

    原文:C#读取Xml中出现"&"等特殊符号 C#读取Xml中出现的特殊符号时用ASCII或者转定义名称代替.程序读进来后转成字符串后就自动变成相应的字符了,再度保存时会以正 ...

  10. Centos7 安装vscode

    1.官网下载vscode https://vscode.cdn.azure.cn/stable/0f3794b38477eea13fb47fbe15a42798e6129338/code-1.36.0 ...