Hibernate高级版

一、Hibernate的五种检索方式

在这里插入图片描述
(一)具体描述(前两种之前讲过,直接从第三种讲起)
在这里插入图片描述

在这里插入图片描述

(二)具体实例
1、HQL检索
逻辑图
在这里插入图片描述
(1)目录结构
在这里插入图片描述

(2)准备实体类
BuyOrder.java

package com.hliedu.hql;

import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Set;

public class BuyOrder {
	// 订单号
	private Integer ordId;
	// 订单名称
	private String orderName;
	// 订单总金额
	private BigDecimal totalPrice;
	// 订单明细
	private Set<OrderDetail> orderDetail = new HashSet<OrderDetail>();

	public Integer getOrdId() {
		return ordId;
	}

	public void setOrdId(Integer ordId) {
		this.ordId = ordId;
	}

	public String getOrderName() {
		return orderName;
	}

	public void setOrderName(String orderName) {
		this.orderName = orderName;
	}

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}

	public Set<OrderDetail> getOrderDetail() {
		return orderDetail;
	}

	public void setOrderDetail(Set<OrderDetail> orderDetail) {
		this.orderDetail = orderDetail;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return orderName;
	}

	// 无参数构造方法
	public BuyOrder() {
		// TODO Auto-generated constructor stub
	}

	// 投影查询,对有参对象实例化需要提供带参数的方法
	public BuyOrder(String orderName) {
		// TODO Auto-generated constructor stub
		this.orderName = orderName;
	}
}

BuyOrder.hbm.xml
在这里插入图片描述

OrderDetail.java

package com.hliedu.hql;

import java.math.BigDecimal;

public class OrderDetail {
	
	//订单明细Id
	private Integer detailId;
	//商品名称
	private String goodName;
	//商品单价
	private Integer count;
	//商品单价
	private BigDecimal price;
	//订单
	private BuyOrder buyOrder;
	public Integer getDetailId() {
		return detailId;
	}
	public void setDetailId(Integer detailId) {
		this.detailId = detailId;
	}
	public String getGoodName() {
		return goodName;
	}
	public void setGoodName(String goodName) {
		this.goodName = goodName;
	}
	public Integer getCount() {
		return count;
	}
	public void setCount(Integer count) {
		this.count = count;
	}
	public BigDecimal getPrice() {
		return price;
	}
	public void setPrice(BigDecimal price) {
		this.price = price;
	}
	public BuyOrder getBuyOrder() {
		return buyOrder;
	}
	public void setBuyOrder(BuyOrder buyOrder) {
		this.buyOrder = buyOrder;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return goodName;
	}
}

OrderDetail.hbm.xml
在这里插入图片描述
HibernateUtil.java
在这里插入图片描述HibernateTest.java
在这里插入图片描述
hibernate.cfg.xml添加
在这里插入图片描述

(3)概念及实现过程
概念一
在这里插入图片描述

实现一
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

概念二
在这里插入图片描述
实现二
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述--------------------------------------------------------------------------------------------------------------------
在这里插入图片描述在这里插入图片描述

概念三
在这里插入图片描述在这里插入图片描述实现三
(无fetch)
在这里插入图片描述
(有fetch)
在这里插入图片描述
2、QBC检索
在这里插入图片描述
3、本地SQL检索
在这里插入图片描述(查询)
在这里插入图片描述
(添加)
在这里插入图片描述

二、Hibernate3种检索策略

在这里插入图片描述------------------------------------------------------------------------------------------------------------------
在这里插入图片描述在这里插入图片描述------------------------------------------------------------------------------------------------------------------
在这里插入图片描述在这里插入图片描述

三、缓存概述

在这里插入图片描述
一级缓存(session)
在这里插入图片描述
二级缓存(sessionFactory)
在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、集成EhCache

(一)简洁配置过程
在这里插入图片描述

(二)详细配置过程
所需jar位置:hibernate-release-5.3.16.Final\hibernate-release-5.3.16.Final\lib\optional\ehcache

ehcache.xml存放位置:hibernate-release-5.3.16.Final\hibernate-release-5.3.16.Final\project\etc\

ehcache.xml配置说明
在这里插入图片描述

在ehcache.xml中找到并删除
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
1、在hibernate.cfg.xml修改
在这里插入图片描述
2、或者在*.hbm.xml修改
在这里插入图片描述

(三)代码验证
在这里插入图片描述

五、HQL查询缓存

在这里插入图片描述

六、时间缓存区域

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值