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框架】关联映射(一对多,多对一)
根据我们的总结计划,上篇文章我们总结了有关于一对一映射相关知识,接下来,我们进行下一个阶段,一对多.多对一映射相关知识. 场景设定: 国家规定,一个人只能在一个公司上班,一个公司可以拥有很多员工.我们 ...
随机推荐
- 辅助模块应用(auxiliary/scanner/portscan/tcp)
实验步骤 创建msf所需的数据库 之前我们开启msf时下面总会出现一个红色的小减号,原来是因为没有和数据库键连接,于是首先我们要手动建立一个数据库... 使用命令来实现: service postgr ...
- 20162326 qilifeng 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1
<网络对抗技术>第1次作业 (一)作业任务 1.安装kali 2.设置共享文件夹 (二)操作过程 1.安装kali 因为之前安装过Oracle 的VM VirtualBox 所以直接 进入 ...
- NOIP2016 T4 魔法阵 暴力枚举+前缀和后缀和优化
想把最近几年的NOIP T4都先干掉,就大概差16年的,所以来做一做. 然后这题就浪费了我一整天QAQ...果然还是自己太弱了QAQ 点我看题 还是pa洛谷的... 题意:给m个物品,每个物品有一个不 ...
- Uva 12304 - 2D Geometry 110 in 1!
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- callee 与 caller
arguments.callee 在函数内部指向函数本身 1.函数调用 function sum (num){ if(num <= 1){ return 1; }else{ return num ...
- node的开发者环境设置丢失
1.我看到的最简单的一种:evn 默认的值是 development var app = express(); if (app.get('env') === 'development') { req ...
- 递推-练习1--noi1760 菲波那契数列(2)
递推-练习1--noi1760 菲波那契数列(2) 一.心得 二.题目 1760:菲波那契数列(2) 总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列: 数 ...
- git add 的一点说明
git add --cached 这里 --cached是什么意思呢?要解释清楚这个问题,我们必须先了解一个文件在git中的状态. [commit]----[stage]-----[checkout] ...
- KMP与AC自动机
KMP算法主要思想就是预处理出失配函数, 从而减少匹配失败时的回溯, 复杂度是$\Theta(m+n)$, 已达到理论下界 c++代码如下 int n, f[N]; char t[N], p[N]; ...
- go_install_x_from_github.sh 从 github 安装 go x tools
bash go_install_x_from_github.sh #!/bin/bash set +e # set -x echo 'GO Utilities: Install golang.org/ ...