jpql简单l查询

Posted yscec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jpql简单l查询相关的知识,希望对你有一定的参考价值。

JPQL全称Java Persistence Query Language

 

 

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查询的主要内容,如果未能解决你的问题,请参考以下文章

没有 JPQL 查询的 Spring-data-jpa 中的 CURRENT_DATE

19 JPQL

JPA JPQL简介

使 JPQL/QueryDSL 不会产生可怕的查询

联接表中的 JPQL 查询

带有枚举值的 jpql IN 查询