hibernate一对多,细节讲解
1.一对多
1).首先创建两个实体类studeninfo.java跟studentxxb.java
1)studentinfo.java表如图:
package model; import java.util.Date;
import java.util.HashSet;
import java.util.Set; public class studentinfo {
private Integer id;
private String name;
private String aihao;
private Date sjina;
private Set<studentxxb> studentxxbs=new HashSet<>();
public studentinfo() {
super();
}
public studentinfo(Integer id, String name, String aihao, Date sjina, Set<studentxxb> studentxxbs) {
super();
this.id = id;
this.name = name;
this.aihao = aihao;
this.sjina = sjina;
this.studentxxbs = studentxxbs;
}
@Override
public String toString() {
return "studentinfo [id=" + id + ", name=" + name + ", aihao=" + aihao + ", sjina=" + sjina + ", studentxxbs="
+ studentxxbs + "]";
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAihao() {
return aihao;
}
public void setAihao(String aihao) {
this.aihao = aihao;
}
public Date getSjina() {
return sjina;
}
public void setSjina(Date sjina) {
this.sjina = sjina;
}
public Set<studentxxb> getStudentxxbs() {
return studentxxbs;
}
public void setStudentxxbs(Set<studentxxb> studentxxbs) {
this.studentxxbs = studentxxbs;
}
}
2)stdentxxb.java如下图:
package model;
import java.util.Date;
public class studentxxb {
private Integer id;
private String dhua;
private String diz;
private studentinfo studentinfos;
public studentxxb() {
super();
}
public studentxxb(Integer id, String dhua, String diz, studentinfo studentinfos) {
super();
this.id = id;
this.dhua = dhua;
this.diz = diz;
this.studentinfos = studentinfos;
}
@Override
public String toString() {
return "studentxxb [id=" + id + ", dhua=" + dhua + ", diz=" + diz + ", studentinfos=" + studentinfos + "]";
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDhua() {
return dhua;
}
public void setDhua(String dhua) {
this.dhua = dhua;
}
public String getDiz() {
return diz;
}
public void setDiz(String diz) {
this.diz = diz;
}
public studentinfo getStudentinfos() {
return studentinfos;
}
public void setStudentinfos(studentinfo studentinfos) {
this.studentinfos = studentinfos;
}
}
2).两个实体类创建好了,接下来配置两个实体类的hbm.xml文件
1).实体类studentinfo.java的配置(studentinfp-mapping.hbm.xml)如图:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.studentinfo" table="studentinfo">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="name" column="name"></property>
<property name="aihao" column="aihao"></property>
<property name="sjina" column="sjina"></property>
<set name="studentxxbs">
<key>
<column name="student_xxbs"></column>
</key>
<one-to-many class="model.studentxxb"/>
</set>
</class> </hibernate-mapping>
2). 实体类studentxxb.java的配置(studentxxb-mapping.hbm.xml)如图:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.studentxxb" table="studentxxb">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="dhua" column="dhua"></property>
<property name="diz" column="diz"></property>
<many-to-one name="studentinfos" class="model.studentinfo" column="student_infos"></many-to-one> </class> </hibernate-mapping>
3)接下来配置cfg.xml文件这里命名为(hibernate.cfg.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.studentinfo" table="studentinfo">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="name" column="name"></property>
<property name="aihao" column="aihao"></property>
<property name="sjina" column="sjina"></property>
<set name="studentxxbs">
<key>
<column name="student_xxbs"></column>
</key>
<one-to-many class="model.studentxxb"/>
</set>
</class> </hibernate-mapping>
4)测试类 Testmain.java:
package test; import java.util.Date; import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import model.studentinfo;
import model.studentxxb; public class Testmain1 {
public static void main(String[] args) {
Session session=new Configuration().configure().buildSessionFactory().openSession();
Transaction tt=session.beginTransaction(); studentinfo studentinfo=new studentinfo();
studentinfo.setName("王胖子");
studentinfo.setAihao("爬山");
studentinfo.setSjina(new Date()); studentxxb xxb=new studentxxb();
xxb.setDiz("是是是");
xxb.setDhua("1111111");
studentinfo.getStudentxxbs().add(xxb);
xxb.setStudentinfos(studentinfo);
session.save(xxb);
session.save(studentinfo);
tt.commit();
session.close();
}
}
5)控制台运行结果:


6)数据库运行结果:

*先导包
hibernate一对多,细节讲解的更多相关文章
- Hibernate一对多配置
刚刚学习了Hibernate框架的基础知识,下面我来说说关于Hibernate一对多的配置 首先是大配置 连接数据库 用户名 和密码 能和小配置连接 部门小配置: 员工小配置: 部门实体类 员工实体类 ...
- hibernate 一对多双向关联 详解
一.解析: 1. 一对多双向关联也就是说,在加载班级时,能够知道这个班级所有的学生. 同时,在加载学生时,也能够知道这个学生所在的班级. 2.我们知道,一对多关联映射和多对一关联映射是一样的,都是在 ...
- Hibernate一对多OnetoMany
------------------------Hibernate一对多OnetoMany 要点: 配置在一端. 1.如果是单向关联,即只在一端配置OneToMany,多端不配置ManyToOne.则 ...
- Hibernate一对多单向关联和双向关联映射方法及其优缺点 (待续)
一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同.它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的同 ...
- Hibernate一对多操作
--------------------siwuxie095 Hibernate 一对多操作 以客户和联系人为例,客户是一,联系人是多 即 一个客户里面有多个联系人,一个联系人只能属于一个客户 注意: ...
- Java进阶知识10 Hibernate一对多_多对一双向关联(Annotation+XML实现)
本文知识点(目录): 1.Annotation 注解版(只是测试建表) 2.XML版 的实现(只是测试建表) 3.附录(Annotation 注解版CRUD操作)[注解版有个问题:插入值时 ...
- Java进阶知识09 Hibernate一对多单向关联(Annotation+XML实现)
1.Annotation 注解版 1.1.在一的一方加Set 1.2.创建Customer类和Order类 package com.shore.model; import java.util.Hash ...
- 菜鸟学习Hibernate——一对多关系映射
Hibernate中的关系映射,最常见的关系映射之一就是一对多关系映射例如学生与班级的关系,一个班级对应多个学生.如图: Hibernate中如何来映射这两个的关系呢? 下面就为大家讲解一下: 1.创 ...
- 03.Hibernate一对多关联
前言:在域模型中,类与类之间最普遍的关系就是关联关系,在UML语言中关联关系是有方向的.在数据库中表与表之间也会有关联关系,本节介绍通过Hibernate映射一对多的关联关系,这是一种最普遍的关联关系 ...
随机推荐
- SQL Server 列存储索引 第四篇:实时运营数据分析
实时运营数据分析(real-time operational analytics )是指同时在同一张数据表上执行分析处理和业务处理.分析查询主要是对海量数据执行聚合查询,而事务主要是指对数据表进行少量 ...
- 【译】Rust中的array、vector和slice
原文链接:https://hashrust.com/blog/arrays-vectors-and-slices-in-rust/ 原文标题:Arrays, vectors and slices in ...
- 给Swagger换一套皮肤 Knife4j集成记录
Swagger有一套经典的UI,但是并不是很好用,之前有看到Knife4j,界面没管.功能完善,因此尝试集成. demo参考示例地址:knife4j-spring-boot-demo Knife4j前 ...
- audioread.NoBackendError
audioread.NoBackendError 起因 使用以下代码读取音频文件时: # !/usr/bin/python # -*- coding: utf-8 -*- ""&q ...
- [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)
题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ...
- JavaMail 发送邮件出现 Connection reset 问题
问题描述 使用 java mail 发送邮件的时候,申请的 163 邮箱作为发件箱,然无论如何配置,均出现 Connection reset,无法正常发送邮件. Exception in thread ...
- IDEA创建maven项目没有src/main/java目录问题解决
IDEA创建maven项目没有src/main/java目录问题解决 今天新建一个maven项目的时候,没有src文件目录,查了网上很多,依然没有解决,后来发现是VM Options ...
- Luogu P1856 [USACO5.5]矩形周长Picture
线段树+扫描线 经典的扫描线问题 首先将一个矩形看作由竖着的两条边和横着的两条边构成 那分成两次考虑,一次考虑竖边,一次考虑横边 首先考虑横边 如图两个矩形,现将横边擦去,留下竖边,将平面划分成3个区 ...
- xshell断线解决办法
困扰了好几个月了,网上更改ssh配置文件.固定ip都不好使,终于找到xshell掉线的解决办法了 哈哈!!! 设备管理器-->网络适配器-->对应网络连接虚拟机方式,本机虚拟机桥接如图 右 ...
- ajax传值出现乱码问题
第一种:前台传值到后台,浏览器控制台打印正常,controller接收后成了乱码. 后台controller层加上两行转换代码 name=URLDecoder.decode(name,"ut ...