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