21_22_一对多关联映射_单向_1、2
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
border:none;
mso-border-bottom-alt:solid windowtext .75pt;
padding:0cm;
mso-padding-alt:0cm 0cm 1.0pt 0cm;
font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0cm;
margin-bottom:.0001pt;
mso-pagination:none;
tab-stops:center 207.65pt right 415.3pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;
mso-footnote-separator:url("21_22_一对多关联映射_单向_1、2.files/header.htm") fs;
mso-footnote-continuation-separator:url("21_22_一对多关联映射_单向_1、2.files/header.htm") fcs;
mso-endnote-separator:url("21_22_一对多关联映射_单向_1、2.files/header.htm") es;
mso-endnote-continuation-separator:url("21_22_一对多关联映射_单向_1、2.files/header.htm") ecs;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
21_22_
一对多关联映射
_
单向
_1
、
2
例子:
Student.java
、
Classes.java
、
Student.hbm.xml
、
Classes.hbm.xml
、
ExportDB.java
、
HibernateUtils.java
、
one2many.java
|
hihernate
一对多关联映射(单向
Classes----->Student
)
t_student
1
|
10
|
1
2
|
祖儿
|
1
|
一对多关联映射利用了多对一关联映射原理
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多
也就是说一对多和多对一的映射策略是一样的,只是站的角度不同
在一一端维护关系的缺点:
*
如果将
t_student
表里的
classesid
字段设置为非空,则无法保存
*
因为不是在
student
这一端维护关系,所以
student
不知道是哪个班的,
所以需要发出多余的
update
语句来更新关系
一对多和多对一关系,这两个没多少区别,都是在
多
的这边加上外键指向
一
的这边,
主要的区别是:
如果维护的是多对一,当加载多
(
多个学生
)
的时候,它能把一
(
多个学生对应的那个一个班级
)
加载进来
;
如果维护的是一对多,当加载一
(
一个班级
)
的时候,它能把多
(
一个班级里含有的多个学生
)
加载进来
;
例子:
Student.java
代码
package
com.bjsxt.hibernate;
public
class
Student {
private
int
id
;
private
String
name
;
public
int
getId() {
return
id
;
}
public
void
setId(
int
id) {
this
.
id
= id;
}
public
String getName() {
return
name
;
}
public
void
setName(String name) {
this
.
name
= name;
}
}
|
Classes.java
代码
package
com.bjsxt.hibernate;
import
java.util.Set;
public
class
Classes {
private
int
id
;
private
String
name
;
private
Set
studentes
;
public
int
getId() {
return
id
;
}
public
void
setId(
int
id) {
this
.
id
= id;
}
public
String getName() {
return
name
;
}
public
void
setName(String name) {
this
.
name
= name;
}
public
Set getStudentes() {
return
studentes
;
}
public
void
setStudentes(Set studentes) {
this
.
studentes
= studentes;
}
}
|
Student.hbm.xml
代码
<?
xml
version
=
"1.0"
?>
<!
DOCTYPE
hibernate-mapping
PUBLIC
"-//Hibernate/Hibernate
Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<
hibernate-mapping
>
<
class
name
=
"com.bjsxt.hibernate.Student"
table
=
"t_Student"
>
<
id
name
=
"id"
>
<
generator
class
=
"native"
/>
</
id
>
<
property
name
=
"name"
/>
</
class
>
</
hibernate-mapping
>
|
Classes.hbm.xml
代码
<?
xml
version
=
"1.0"
?>
<!
DOCTYPE
hibernate-mapping
PUBLIC
"-//Hibernate/Hibernate
Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<
hibernate-mapping
>
<
class
name
=
"com.bjsxt.hibernate.Classes"
table
=
"t_Classes"
>
<
id
name
=
"id"
>
<
generator
class
=
"native"
/>
</
id
>
<
property
name
=
"name"
/>
<!--
在
Student
实体里没有
classesid
字段,所以在这里加上个外键
classesid,
作为外键指向
Student
,
-->
<
set
name
=
"studentes"
>
<
key
column
=
"classesid"
/>
<
one-to-many
class
=
"com.bjsxt.hibernate.Student"
/>
</
set
>
</
class
>
</
hibernate-mapping
>
|
HibernateUtils.java
代码
package
com.bjsxt.hibernate;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.cfg.Configuration;
public
class
HibernateUtils {
private
static
SessionFactory
factory
;
static
{
try
{
Configuration cfg =
new
Configuration().configure();
factory
= cfg.buildSessionFactory();
}
catch
(Exception
e) {
e.printStackTrace();
}
}
public
static
SessionFactory getSessionFactory() {
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
007 Hibernate 基本映射标签和属性介绍 008 多对一 关联映射 009 一对一 主键关联映射_单向 010 一对一 主键关联映射_双向 011 一对一 唯一外键关联映射_单向 012 一对一 唯一外键关联映射_双向 013 session_flush ...
标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系。它是一个配置文件,和web.xml是类似的。 4、标签处理类(Tag Handle Class) 标签处理类是一个Java类,这个类继承了...
9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 ...
1. Java基本值类型的Hibernate映射 224 2. Java时间和日期类型的Hibernate映射类型 224 3. Java大对象类型的Hibernate映射类型 225 4. 关联关系映射 225 5. Hibernate的事务与并发 238 (十) 数据库 240 1. 数据库的...
9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 ...
9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 ...
9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 ...
9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 ...
VB程序设计初步 ——基础概念 1VB程序设计初步全文共25页,当前为第1页。... 窗体和控件的基本属性(1) Name(名称)属性 Name属性是所有控件都具有的属性,Name属性的值作为控件的标识在程序中被引用
10.4 实体的基本映射387 10.4.1 映射实体类的属性 387 10.4.2 将实体映射到多个表 394 10.4.3 映射复合类型的属性 396 10.4.4 映射实体类的主键 398 10.5 关联关系映射 402 10.5.1 单向N-1关联 403 10.5.2 单向1-1...
1. 简介 2. 起步 2.1 下载并安装Grails 2.2 创建一个Grails应用 2.3 Hello World示例 2.4 使用IDE 2.5 规约配置 2.6 运行Grails应用 2.7 测试Grails应用 2.8 部署Grails应用 2.9 所支持的Java EE容器 2.10 创建工件 ...
+ 标签的属性:<标签的名字 属性1 属性2 属性3> + 重要的标签:头部标签、主体标签、图片标签、文字标签、字体标签、列表标签、表格标签、表单标签 三、基本网页设计 * 设置页面属性 * 设置文件头信息 * 网页中...
3.1 使用标签、元素和属性 3.1.1 标签 3.1.2 元素 3.1.3 属性的定义 3.1.4 属性值的定义 3.1.5 元素和属性的大小写规范 3.2 字符引用 3.2.1 字符数字引用 3.2.2 字符实体引用 3.3 使用注释 3.4 关于空白和空白字符 ...
在本篇文章中,我们将详细介绍 MyBatis 配置的基本概念和元素。 SQL 映射 XML 文件 SQL 映射 XML 文件是所有 SQL 语句放置的地方。需要定义一个 workspace,一般定义为对应的接口类的路径。在 MyBatis 配置文件中...
第1章MATLAB7.0简介 1.1MATLAB的特点 1.1.1MATLAB的基本特点 1.1.2MATLAB7.0的新特点 1.2MATLAB桌面简介 1.2.1启动按钮 1.2.2命令窗口 1.2.3命令历史窗口 1.2.4T作空间窗口 1.2.5当前...
一、基本概念: 1.标签(Tag): 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的 2.标签库...
4.3.1 hibernate的基本映射数据类型 212 4.3.2 hibernate的主键映射 218 4.3.3 hibernate的实体映射 228 4.3.4 映射一对一关联关系 228 4.3.5 映射多对一单向关联关系 235 4.3.6 映射一对多双向关联关系 239 ...
加入了相似的功能,其基本思路是:在与TreeCtrl控件关联的类(CDirTreeCtrl)中重载鼠标移动消息函数,设置相关的文本的颜色参数,在WM_PAINT消息映射函数定义的设备环境中改变逻辑字体属性(由LOGFONT结构描述)并使用设置...
-修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -...