Hibernate之SQL语言查询

package com.test;

import com.domain.Customer;
import com.utils.HibernateUtils;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.NativeQuery;
import org.junit.Test;

import java.util.Arrays;
import java.util.List;

public class Demo_04 {
    @Test
    public void test_01(){
        //返回数组list
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String sql = "select * from cst_customer";
        //创建sql查询对象
        NativeQuery sqlQuery = session.createSQLQuery(sql);
        List<Object[]> list = sqlQuery.list();
        for(Object[] objects:list){
            System.out.println(Arrays.toString(objects));
        }
        transaction.commit();
        session.close();
    }

    @Test
    public void test_02(){
        //返回对象list
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String sql = "select * from cst_customer";
        NativeQuery sqlQuery = session.createSQLQuery(sql);
        sqlQuery.addEntity(Customer.class);
        List<Customer> list = sqlQuery.list();
        for(Customer customer : list){
            System.out.println(customer);
        }
        transaction.commit();
        session.close();

    }

    @Test
    public void test_03(){
        //条件查询
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String sql = "select * from cst_customer where cust_id = ?0";
        NativeQuery sqlQuery = session.createSQLQuery(sql);
        sqlQuery.setParameter(0,2);
        sqlQuery.addEntity(Customer.class);
        Customer customer = (Customer) sqlQuery.uniqueResult();
        System.out.println(customer);
        transaction.commit();
        session.close();
    }

    @Test
    public void test_04(){
        //分页查询
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String sql = "select * from cst_customer limit ?0,?1";
        NativeQuery sqlQuery = session.createSQLQuery(sql);
        sqlQuery.setParameter(0,1);
        sqlQuery.setParameter(1,3);
        sqlQuery.addEntity(Customer.class);
        List<Customer> list = sqlQuery.list();
        for(Customer customer:list){
            System.out.println(customer);
        }
        transaction.commit();
        session.close();

    }


}

  

原文地址:https://www.cnblogs.com/kongieg/p/10649814.html