02 - Unit010:关联映射
关联映射
什么是?
数据库中有关联关系的表,通过实体对象引用的方式体现出来,叫关联映射.
为什么?
将多表的记录封装成实体对象.
何时用?
对数据库中的表进行多表查询时.
怎么用?
cn_user------>User
cn_notebook-->Book
public class User{
cnuserid
cnusername
.
.
.
List books; }
public class Book{
cnuserid
cnusername
.
.
.
User user;
}
单个对象的关联
单个SQL语句实现
两条SQL语句实现
多个对象的关联
单个SQL语句实现:一条SQL语句实现,SQL语句复杂,与数据库交互一次.
两条SQL语句实现:一条语句查询USER,一条语句查询BOOK,SQL语句简单,与数
据库进行了两次交互
案例:查询User关联Book的相关信息
实现步骤:
定义Dao接口文件
定义Mapper文件
执行测试
练习: 用一条语句实现加载多个关联对象
select * from cn_user u join cn_notebook b on (u.cn_user_id=b.cn_user_id) where u.cn_user_id=#{userId} mapper文件中定义一个<select>标签和<resultMap>标签
案例:查询Book关联User信息(单个对象关联)
实现步骤:
定义Dao接口文件
定义Mapper文件
执行测试
一个SQL语句实现关联查询
练习:通过两个SQL语句查询Book关联User信息
Mapper定义:
<select>
cn_notebook全表查询
</select>
<resultMap>
定义Book映射
<association>
定义User映射
</association>
</resultMap>
<select>
关联cn_user表查询
</select>
主键字段的处理
利用数据自增列作为主键时,执行insert操作时,可以在服务器端自动获取主键值
如何实现
<insert
useGeneratedKeys="true" keyProperty="id">
创建表:
create table t_emp(id int primary key auto_increment,name varchar(30),age int)
作业:
利用一个SQL语句实现单个对象关联
利用两个SQL语句实现多个对象关联

02 - Unit010:关联映射的更多相关文章
- Hibernate框架之关联映射入门
关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 一:配置单向多对一关联 在Emp类中定义一个Dept属性,而在Dept类中无须定义用于存放Emp对象的集合属性 01.Dept. ...
- Hibernatel框架关联映射
Hibernatel框架关联映射 Hibernate程序执行流程: 1.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...
- hibernate多对多关联映射
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- Hibernate一对多单向(双向)关联映射
(1).编写配置文件 Hibernate通过读写默认的XML配置文件hibernate.cfg.xml加载数据库配置信息.代码如下: <hibernate-configuration> & ...
- Java三大框架之——Hibernate关联映射与级联操作
什么是Hibernate中的关联映射? 简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射. 它将数据库中的表映射成对应的 ...
- Hibernate关联映射 映射文件的配置
一:多对一单向关联 首先我们必须创建两个实体类 例如:Dept类 public class Dept { private Integer deptNo; private String dName; p ...
- Hibernate组件和关联映射
一.基本定义 组件:建立一个类,为了方便代码复用和建立模型,但类在数据库中并没有对应的表,此类可以作为一个组件插入到其他类中(有数据表的类) 组件和关联映射的关系是组件是没有对应的类;组件是值类型的, ...
- 【Hibernate框架】关联映射(多对多关联映射)
按着我们的总结行进计划,接下来,就是有关于多对多映射的总结了. 我们来举个例子啊,很长时间以来,房价暴涨不落,但是还有很多人拥有很多套房产,假如说,一个富豪拥有九套房产,家里人么准去住哪一套,我们就以 ...
- 【Hibernate框架】关联映射(一对多,多对一)
根据我们的总结计划,上篇文章我们总结了有关于一对一映射相关知识,接下来,我们进行下一个阶段,一对多.多对一映射相关知识. 场景设定: 国家规定,一个人只能在一个公司上班,一个公司可以拥有很多员工.我们 ...
随机推荐
- Javaworkers团队第一周项目总结
项目名称:游戏贪吃蛇 项目介绍: 贪吃蛇是一款相当经典的小游戏,我们团队决定用我们现有的java知识来实现它. 具体设计: 对象:蛇.果实 方向键:控制蛇的运动. 空格键:暂停游戏 ESC:推出游戏( ...
- Ubuntu Budgie 18.04 是最好的Remix【转】
本文转载子:https://www.linuxidc.com/Linux/2018-05/152223.htm [日期:2018-05-05] 来源:Linux公社 作者:醉落红尘 [字体:大 中 ...
- linux下如何退出tmux和重新进入tmux
1.退出(detach)当前tmux ctrl+d 2.重新进入tmux tmux attach -t <target-session> 如:当前有很多session,那么选择哪一个呢? ...
- 【p4tutorials】P4 v1.1 Simple Router
fork了p4tutorials,想从里面窥探一些门道. 本文相关的原文链接:ReadMe 说明: 下面的这个P4程序,是当下最著名的 simple_router 程序的一个版本,是根据P4的1.1版 ...
- Solidity 官方文档中文版 2_Ethereum 智能合约介绍
一个简单的智能合约 先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节. Storage contract SimpleStorage { uint storedDa ...
- ggplot2作图详解7(完):主题(theme)设置
凡是和数据无关的图形设置内容理论上都可以归为主题类,但考虑到一些内容(如坐标轴)的特殊性,可以允许例外的情况.主题的设置相当繁琐,很容易就占用了 大量的作图时间,应尽量把这些东西简化,把注意力主要放在 ...
- 同样是搞Java,年薪15W和50W到底差在哪里?
同样是搞Java,年薪15W和50W到底差在哪里? 一.总结 一句话总结: 学习 挑战 1.扩宽自己的眼界,学着从全局看待问题,并且勇于挑战别人眼中的难题 2.持续提升你的学习能力,虽然有很多人以「在 ...
- 安装 android4.0 到 vmware的注意点
我发现无论如何,wmware上是出不来声音的. 我放弃 android-x86-4.3-20130725.iso 在 声音上有问题 现在安装这个版本: android-x86-4.0-RC2-eeep ...
- Android------实现图片双击放大,缩小,左右滑动的多种方式
项目中常常有图片浏览功能.像微信朋友圈图片浏览,QQ空间照片浏览 的功能. 实现图片双击放大,缩小,左右滑动等效果. 来看看我的效果图,希望能满足你的要求 前三个button按钮是参考网上的多种实 ...
- instancetype 与id
1 .依照cocoa的命名规则,alloc,init这类方法,如果以id为返回类型,会返回类本身的类型,但类方法的返回类型,LLVM(clang)编译器无法判断,也就是说如果 用id作为返 ...