版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲人:吴佳云延迟符关联映射1:1动态SQL与关联映射什么是数据关联关联是一个数据库实体的概念。比如角色需要用户与之对应,这样就有角色用户表,一个角色可能有多个用户,这就是一对多的关联。数据库表与表之间的关联关系,一般包括三种:一对一、一对多、多对多。在Mybatis中,数据库表与表之间的关系型数据会映射成面向对象型的数据关系。关联映射1:1关联映射1:1指两个对象之间是一对一的关系,比如一个人只有一个身份证,一个身份证只能给一个人使用。关联映射1:1(1)数据库准备INSERTINTO`tb_card`VALUES(1001,'320683199999999999');
INSERTINTO`tb_person`VALUES(1,1001,'张三','男',18);CREATETABLE`tb_card`(
`id`intNOTNULL,
`code`varchar(45)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDB;CREATETABLE`tb_person`(
`id`intNOTNULL,
`cardId`intDEFAULTNULL,
`name`varchar(45)DEFAULTNULL,
`sex`varchar(45)DEFAULTNULL,
`age`intDEFAULTNULL,
PRIMARYKEY(`id`),
KEY`fk_cardId_idx`(`cardId`),
CONSTRAINT`fk_cardId`FOREIGNKEY(`cardId`)REFERENCES`tb_card`(`id`)
);
关联映射1:1(2)实体类@Data
publicclassPerson{
/**ID*/
privateIntegerid;
/**身份证ID*/
privateIntegercardId;
/**名字*/
privateStringname;
/**性别*/
privateStringsex;
/**年龄*/
privateIntegerage;
}@Data
publicclassCard{
/**id*/
privateIntegerid;
/**身份证号码*/
privateStringcode;
}@Data
publicclassPersonVo{
/**ID*/
privateIntegerid;
/**工牌ID*/
privateIntegercardId;
/**名字*/
privateStringname;
/**性别*/
privateStringsex;
/**年龄*/
privateIntegerage;
/**身份证信息*/
privateCardcard;
}Person.javaCard.javaPersonVo.java关联映射1:1(3)创建XML映射文件<mappernamespace="com.my.ccit.mapper.CardMapper">
<selectid="getById"parameterType="int"resultType="com.my.ccit.entity.Card">
select*fromtb_card
whereid=#{id}
</select>
</mapper><mappernamespace="com.my.ccit.mapper.PersonMapper">
<resultMapid="personVoMap"type="com.my.ccit.vo.PersonVo">
<idproperty="id"column="id"/>
<resultproperty="cardId"column="cardId"/>
<resultproperty="name"column="name"/>
<resultproperty="sex"column="sex"/>
<resultproperty="age"column="age"/>
<!--多对一映射:association-->
<associationproperty="card"column="cardId"
select="com.my.ccit.mapper.CardMapper.getById"
javaType="com.my.ccit.entity.Card"/>
</resultMap>
<selectid="getById"resultMap="personVoMap">
select*fromtb_person
whereid=#{id}
</select>
</mapper>CardMapper.xmlPersonMapper.xml关联映射1:1(4)创建Mapper接口@Mapper
publicinterfaceCardMapper{
CardgetById(Integerid);
}@Mapper
publicinterfacePersonMapper{
PersonVogetById(Integerid);
}CardMapper.javaPersonMapper.java关联映射1:1(5)编写测试类@Test
publicvoidtest(){
//1.通过工具类生成SqlSession对象
SqlSessionsession=MyBatisUtils.getSession();
PersonMapperpersonMapper=session.getMapper(PersonMapper.class);
//3.查询name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- B卷及答案-冲压工艺及模具设计
- 2026年医院应知应会题库(含答案)
- 2026年医保知识常规考核考试题库及答案
- 2026年社区医生招聘模拟试题带答案
- 2026年企业公文流转与审批制度
- 2026年处方管理办法、处方审核及点评相关知识培训考试试题(附答案)
- 2025年执业医师考试的常见病例分析试题及答案
- 2026年殡葬基础知识考试试题及答案解析
- 2025年成都市市直机关遴选公务员考试笔试试题(含答案)
- 办公室培训课件
- 主动脉夹层诊疗中国专家共识(2025版)
- 2026年中国太平洋保险集团股份有限公司人员招聘笔试参考题库及详细答案解析
- 2026云南省综合评标专家库专家考试历年参考题库含答案详解
- 劳动用工风险防控手册
- GA/T 2355-2025机动车驾驶人考试组织工作规程
- 2026人教版五年级数学上册第五单元第1课《用字母表示数量关系》课件
- 交通运输部所属事业单位统一招聘笔试真题2025
- 梦幻交易账号合同
- 学堂在线 面向未来社会的服务设计与管理 章节测试答案
- 2025-2026学年江苏省南通市海安市高三上学期期中考试历史试题(解析版)
- 2025年贵州省12月普通高中学业水平合格性考试化学试卷
评论
0/150
提交评论