博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaEE(17) - JPA查询API和JPQL
阅读量:6788 次
发布时间:2019-06-26

本文共 5414 字,大约阅读时间需要 18 分钟。

1. 获取查询结果

2. JPQL函数和JPQL表达式

#1. 使用from子句

#2. 查询部分属性

#3. 查询中使用构造器

3. JPQL的关联查询和多态查询

#1. 多态查询

#2. 隐式连接

#3. 显式连接

4. 对查询结果集进行分页
5. 使用JPQL子查询和命名查询

#1. 子查询

#2. 命名查询

6. JPQL的批量更新和删除

#1. 批量更新

#2. 批量删除

--------------------------------------------------

1. 获取查询结果(Net Beans创建Java Project, 项目名称:JpqlQs)

JpaQs.java

package lee;import java.util.List;import javax.persistence.*;import org.crazyit.model.*;public class JpaQs {    private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("qs");    public static void main(String[] args) {        EntityManager em = emf.createEntityManager();        try {            em.getTransaction().begin();            Query query = em.createQuery("select news , news.title , news.content"                    + " from News as news where news.id > ?1 and"                    + " news.title not like :title");            List result = query.setParameter(1, 1).setParameter("title", "%Java%").getResultList();            for (int i = 0; i < result.size(); i++) {                Object[] row = (Object[]) result.get(i);                for (int j = 0; j < row.length; j++) {                    System.out.println(row[j]);                }            }            em.getTransaction().commit();        }         finally {            em.close();        }    }}

News.java(参见12.2)

persistence.xml(参见12.2)

2. JPQL函数和JPQL表达式

#1. 使用from子句(Net Beans创建Java Project, 项目名称:From)

JpaQs.java

package lee;import java.util.List;import javax.persistence.*;import org.crazyit.model.*;public class JpaQs {    private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("qs");    public static void main(String[] args) {        EntityManager em = emf.createEntityManager();        try {            em.getTransaction().begin();            Query query = em.createQuery("from News as news where news.id < ?1"                    + " and news.title like :title");            List result = query.setParameter(1, 8).setParameter("title", "%Java%").getResultList();                        for (int i = 0; i < result.size(); i++) {                News news = (News) result.get(i);                System.out.println(news.getTitle() + "-->" + news.getContent());            }            em.getTransaction().commit();        }         finally {            em.close();        }    }}

News.java(参见12.2)

persistence.xml(参见12.2)

#2. 查询部分属性(Net Beans创建Java Project, 项目名称:SubProperty)

JpaQs.java

package lee;import java.util.List;import javax.persistence.*;import org.crazyit.model.*;public class JpaQs {    private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("qs");    public static void main(String[] args) {        EntityManager em = emf.createEntityManager();        try {            em.getTransaction().begin();            Query query = em.createQuery("select news.title , news.content"                    + " from News as news where news.id < ?1"                    + " and news.title like :title");            List result = query.setParameter(1, 8).setParameter("title", "%Java%").getResultList();            for (int i = 0; i < result.size(); i++) {                Object[] values = (Object[]) result.get(i);                System.out.println(values[0] + "-->" + values[1]);            }            em.getTransaction().commit();        }         finally {            em.close();        }    }}

News.java(参见12.2)

persistence.xml(参见12.2)

#3. 查询中使用构造器(Net Beans创建Java Project, 项目名称:Constructor)

NewsDTO.java

package org.crazyit.dto;public class NewsDTO {    private String title;    private String content;    // constructor    // setter    // getter}

JpaQs.java

package lee;import java.util.List;import javax.persistence.*;import org.crazyit.model.*;public class JpaQs {    private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("qs");    public static void main(String[] args) {        EntityManager em = emf.createEntityManager();        try {            em.getTransaction().begin();            Query query = em.createQuery("select distinct new org.crazyit.dto.NewsDTO(news.title"                + " , news.content) from News as news where news.id < ?1"                + " and news.title like :title");            List result = query.setParameter(1, 8).setParameter("title", "%Java%").getResultList();            for (int i = 0; i < result.size(); i++) {                System.out.println(result.get(i));            }            em.getTransaction().commit();        }         finally {            em.close();        }    }}

News.java(参见12.2)

persistence.xml(参见12.2)

3. JPQL的关联查询和多态查询

#1. 多态查询(Net Beans创建Java Project, 项目名称:PolyQuery)

News.java(参见12.2)

persistence.xml(参见12.2)

#2. 隐式连接(Net Beans创建Java Project, 项目名称:ImplicitJoin)

News.java(参见12.2)

persistence.xml(参见12.2)

#3. 显式连接(Net Beans创建Java Project, 项目名称:ExplicitJoin)

News.java(参见12.2)

persistence.xml(参见12.2)

4. 对查询结果集进行分页(Net Beans创建Java Project, 项目名称:Paging)

News.java(参见12.2)

persistence.xml(参见12.2)

5. 使用JPQL子查询和命名查询

#1. 子查询(Net Beans创建Java Project, 项目名称:SubQuery)

News.java(参见12.2)

persistence.xml(参见12.2)

#2. 命名查询(Net Beans创建Java Project, 项目名称:NamedQuery)

News.java(参见12.2)

persistence.xml(参见12.2)

6. JPQL的批量更新和删除

#1. 批量更新(Net Beans创建Java Project, 项目名称:Update)

News.java(参见12.2)

persistence.xml(参见12.2)

#2. 批量删除(Net Beans创建Java Project, 项目名称:Delete)

News.java(参见12.2)

persistence.xml(参见12.2)

转载于:https://www.cnblogs.com/thlzhf/p/4249830.html

你可能感兴趣的文章
我的友情链接
查看>>
ssh配置公钥私钥(key)登录SecureCRT
查看>>
go 字符串长度为空的判断 效率
查看>>
openstack安装(liberty)--安装认证服务(Identity service)
查看>>
邮件服务器软件为企业分支“搭桥”
查看>>
Windows Azure之VM的迁移之旅
查看>>
DevOps系列——Gogs和Jenkins的CI配置
查看>>
ExtJS4.2学习(php版)
查看>>
负载均衡——HAProxy
查看>>
win7 访问本机的虚拟机中centos的web项目
查看>>
批处理之播放文本文件
查看>>
windows server 2008活动目录的备份与还原
查看>>
spring boot 2.0.1.RELEASE hibernate 缓存 ehcache 详解
查看>>
关于windows7的更新update失败,windows media play安装失败的 ...
查看>>
mysql之慢查询
查看>>
我的友情链接
查看>>
linux mysql 主主同步复制
查看>>
使用 ajax json(getJSON)从服务器读取数据,在IE下不更新问题解决
查看>>
Pythonの豆瓣相册下载脚本
查看>>
linux shell4 判断登陆用户,然后重启关闭系统
查看>>