JavaEE企业级项目开发(第3版)课件 微课3-6:关联映射1-1_第1页
JavaEE企业级项目开发(第3版)课件 微课3-6:关联映射1-1_第2页
JavaEE企业级项目开发(第3版)课件 微课3-6:关联映射1-1_第3页
JavaEE企业级项目开发(第3版)课件 微课3-6:关联映射1-1_第4页
JavaEE企业级项目开发(第3版)课件 微课3-6:关联映射1-1_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲人:吴佳云延迟符关联映射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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论