Hibernate的关系映射实例总结

本文通过一个小吃点餐系统的实例,详细介绍了使用Hibernate进行数据持久层操作,涉及小吃、用户、评论等实体类的创建及XML配置,重点讲解了关系映射,包括一对多和多对多的实现。
摘要由CSDN通过智能技术生成

Hibernate的关系映射实例总结

1、实例说明

利用hibrante技术做数据持久层,实现一个小吃点餐demo,实现小吃的种类展示,全部小吃展示,用户餐后点评。
数据库表有,用户表,小吃表,小吃种类表,用户评论表,以及小吃用户关系表。
其中关系为:
小吃种类表与小吃表一对多。
用户与小吃表多对多。
用户与评论一对多。
这个系统最主要的就是学习hiberate的关系映射部分。
直接需要项目的可以点击跳转到我这里–>>hibernate关系映射demo

2、实例结构

在这里插入图片描述
就之后dao层和vo层,记得在创建好项目后,需要导入hibernate的相关jar包。并且必须要有一个hibernate.cfg.xml的文件(不能改名),log4j.properties的这个文件可以没有(影响不大)。

3、实例类的创建

3.1、Snack小吃类

package com.snack.vo;

import java.util.HashSet;
import java.util.Set;

/**
 * 商品持久化类
 */
public class Snack {
   
	private Integer SnackId;				//id编号
	private String SnackName;			//商品名称
	private Double Price;			//单价
	private Integer SnackCount;		//数量
	private String Introduce;		//产地
	private SnackSort SnackSort;	//类别
	private Set user=new HashSet();//存放用户集合,用户和小吃是多对多关系,从而用户评价和小吃也是多对多。
	
	public Set getUser() {
   
		return user;
	}
	public void setUser(Set user) {
   
		this.user = user;
	}
	public Integer getSnackId() {
   
		return SnackId;
	}
	public void setSnackId(Integer snackId) {
   
		SnackId = snackId;
	}
	public String getSnackName() {
   
		return SnackName;
	}
	public void setSnackName(String snackName) {
   
		SnackName = snackName;
	}
	public Double getPrice() {
   
		return Price;
	}
	public void setPrice(Double price) {
   
		Price = price;
	}
	public Integer getSnackCount() {
   
		return SnackCount;
	}
	public void setSnackCount(Integer snackCount) {
   
		SnackCount = snackCount;
	}
	public String getIntroduce() {
   
		return Introduce;
	}
	public void setIntroduce(String introduce) {
   
		Introduce = introduce;
	}
	public SnackSort getSnackSort() {
   
		return SnackSort;
	}
	public void setSnackSort(SnackSort snackSort) {
   
		SnackSort = snackSort;
	}
}

3.2、SnackSort小吃类别类

package com.snack.vo;

import java.util.Set;
/**
 * 商品类别持久化类
 * @author Li Yong Qiang
 */
public class SnackSort {
   
	private Integer SnackSortId;			//id编号
	private String SnackSortName;		//类别名称
	private Set<Snack> Snacks;	//商品集合
	public Integer getSnackSortId() {
   
		return SnackSortId;
	}
	public void setSnackSortId(Integer snackSortId) {
   
		SnackSortId = snackSortId;
	}
	public String getSnackSortName() {
   
		return SnackSortName;
	}
	public void setSnackSortName(String snackSortName) {
   
		SnackSortName = snackSortName;
	}
	public Set<Snack> getSnacks() {
   
		return Snacks;
	}
	public void setSnacks(Set<Snack> snacks) {
   
		Snacks = snacks;
	}
}

3.3、User用户类

package com.snack.vo;
import java.util.HashSet;
import java.util.Set;
public class User 
{
   
	private Integer UserId;//用户ID
	private String UserNumber;//用户电话
	private Set<UserComment> UserComments;//评论集合
	private Set snack=new HashSet();//存放小吃集合
	public Set getSnack() {
   
		return snack;
	}
	public void setSnack(Set snack) {
   
		this.snack = snack;
	}
	//用户与评论属于一对多
	public Integer getUserId() {
   
		return UserId;
	}
	public void setUserId(Integer userId) {
   
		UserId = userId;
	}
	public String getUserNumber() {
   
		return UserNumber;
	}
	public void setUserNumber(String userNumber) {
   
		UserNumber = userNumber;
	}
	public Set<UserComment> getUserComments() {
   
		return UserComments;
	}
	public void setUserComments(Set<UserComment> userComments) {
   
		UserComments = userComments;
	}
}

3.4、UserComment用户评价类

package com.snack.vo;

import java.util.Set;

public class UserComment 
{
   
	//在多对一关系中,在多的那一端添加外键,故此需要集合
	private int UserCommentId;//评论编号
	private String CommentContent;//评论内容
	private String CommentDate;//评论日期
	private User Users;//私有的用户
	public int getUserCommentId() {
   
		return UserCommentId;
	}
	public void setUserCommentId(int userCommentId) {
   
		UserCommentId = userCommentId;
	}
	public String getCommentContent() {
   
		return CommentContent;
	}
	public void 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值