使用JPQL語句進行數據庫操作查詢

JPQL:Java Persistence Query Language  即java持久化查詢語言

jpql和sql查詢之間的區別

sql :sql語句中查詢的是表和表中的字段

jpql:sql語句中查詢的是實體類和實體類中對應的屬性

首先建立一個工程,具體的工程我的博客裏面有,大家可以去找一下

然後創建test測試類

package com.w.test;

import com.w.entity.Customer;
import com.w.util.JpaUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import java.util.List;

public class TestJpql {
    EntityManager entityManager;
    EntityTransaction transaction;
    @Before
    public void before(){
        entityManager = JpaUtils.getEntityManager();
        transaction = entityManager.getTransaction();
        transaction.begin();

    }
    @After
    public void after(){
        transaction.commit();
        entityManager.close();
    }
    @Test
    public void testFindAll(){
        Query query = entityManager.createQuery("from com.w.entity.Customer ");
        List<Customer> customers = query.getResultList();
        for (Customer customer : customers) {
            System.out.println(customer);
        }
    }
    @Test
    public void testOrder(){
        Query query = entityManager.createQuery("from com.w.entity.Customer ORDER BY cId desc");
        List<Customer> customers = query.getResultList();
        for (Customer customer : customers) {
            System.out.println(customer);
        }
    }
    @Test
    public void testCount(){
        Query query = entityManager.createQuery("select count(cId)  from com.w.entity.Customer ORDER BY cId desc");
        Object result = query.getSingleResult();
        System.out.println(result);
    }
    @Test
    public void testLimit(){
        Query query = entityManager.createQuery("from com.w.entity.Customer ORDER BY cId desc");
        //顯示多少條
        query.setMaxResults(2);
        //起始條數
        query.setFirstResult(0);
        List<Customer> customers = query.getResultList();
        for (Customer customer : customers) {
            System.out.println(customer);
        }
    }
    @Test
    public void testCondition(){
        //問號後面的數字表示的是第幾個佔位符
        Query query = entityManager.createQuery("from com.w.entity.Customer where cName like ?1");
        query.setParameter(1,"%三%");
        //顯示多少條
        query.setMaxResults(2);
        //起始條數
        query.setFirstResult(0);
        List<Customer> customers = query.getResultList();
        for (Customer customer : customers) {
            System.out.println(customer);
        }
    }
}

jpaUtils

package com.w.util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JpaUtils {
    static EntityManagerFactory factory;
    static {
         factory = Persistence.createEntityManagerFactory("jpa1");
    }
    public static EntityManager getEntityManager(){
        return factory.createEntityManager();
    }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章