Hibernate入门第八讲——Hibernate的其他API

Query

你可从度娘上可看到这样的文字:
在这里插入图片描述
我们主要通过Query完成查询操作,通过Query即可以执行HQL语句,如下:

Query query = session.createQuery("HQL语句");

又可以执行本地SQL语句:

SQLQuery sqlQuery = session.createSQLQuery("本地SQL语句");

温馨提示:SQLQuery是Query的子类。

查询所有操作——使用HQL

我们这儿在com.meimeixia.hibernate.demo01包下创建一个单元测试类——TestQuery.java。使用HQL语句完成查询所有客户的操作,代码如下:

package com.meimeixia.hibernate.demo01;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import com.meimeixia.hibernate.utils.HibernateUtils;

/**
 * Hibernate的其他API
 * @author liayun
 *
 */
public class TestQuery {

	//使用HQL完成查询所有操作
	@Test
	public void test01() {
		Session session = HibernateUtils.getCurrentSession();
		Transaction tx = session.beginTransaction();
		
		String hql = "from Customer";//from后面是类名
		Query query = session.createQuery(hql);
		List<Customer> list = query.list();
		for (Customer customer : list) {
			System.out.println(customer);
		}
		
		tx.commit();
	}
	
}

条件查询

条件查询可以使用where关键字。例如,查询姓王的客户。
在这里插入图片描述
虽然我们可以查询出来,但我们有没有想过姓王的客户即使查出来也只有一个呢,我们有必要把它放在List集合中吗?如果查询结果可以保证就是唯一的,那么我们可以使用Query的uniqueResult()方法来得到一个单独对象。
在这里插入图片描述

分页查询

在执行分页查询时,我们试着向cst_customer表中插入100条记录。
在这里插入图片描述
接下来,就来分页查询,如果说一页显示10条记录,但我们要得到第二页的数据,咋办?
在这里插入图片描述

Criteria

你可从度娘上可看到这样的文字:
在这里插入图片描述
首先我要想使用Criteria,必须得到Criteria,可这么做:

Criteria criteria = session.createCriteria(Xxx.class);

查询所有

例,查询所有客户。

package com.meimeixia.hibernate.demo01;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import com.meimeixia.hibernate.utils.HibernateUtils;

public class TestCriteria {

	// 查询所有
	@Test
	public void test01() {
		Session session = HibernateUtils.getCurrentSession();
		Transaction tx = session.beginTransaction();

		//查询所有
		Criteria criteria = session.createCriteria(Customer.class);
		List<Customer> list = criteria.list();
		for (Customer customer : list) {
			System.out.println(customer);
		}

		tx.commit();
	}

}

条件查询

例,查询姓渣并且客户信息来源为b站的客户。
在这里插入图片描述

分页查询

分页查询操作与Query的方法一样。如果说一页显示10条记录,但我们要得到第二页的数据,咋办?
在这里插入图片描述

小结

我们使用Criteria可以更加面向对象地去操作,它非常适合进行多条件组合查询,但我感觉没什么鸟用!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李阿昀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值