MyBatis关联映射,一对一实例:增删改查

本文介绍了在MyBatis中处理一对一关联映射的实战案例,通过创建tb_person和tb_card两个表并建立外键关联,详细阐述了如何定义实体类、Mapper映射文件、DAO接口、工具类以及配置文件,实现一对一关系的数据库操作。
摘要由CSDN通过智能技术生成

在现实的项目中进行数据库建模时,我们要遵循数据库设计范式的要求,会对现实中的业务模型进行拆分,封装在不同的数据表中,表与表之间存在着一对一、一对多或是多对多的对应关系。

实例:一个人只有一个身份证,一个身份证只能给一个人使用。一对一使用唯一外键关联。创建项目OneToOneTest,实现一对一关系的增删改查。

1、创建两个表tb_person和tb_card,tb_person表的card_id作为外键参照tb_perosn表的主键,一对一关系,card_id作为了唯一外籍约束。
tb_user:
在这里插入图片描述

tb_card:
在这里插入图片描述

2、创建Card类、Person类分别映射tb_card和tb_person表,这里太简单就是构造函数和getset,属性对应就好了,就不放代码了

3、映射文件
CardMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.my.dao.CardDao">
	<!-- 查询-->
	<select id="selectCard" resultType="com.my.bean.Card" parameterType="int">
		select * from tb_card where id = #{
   id}
	</select>
	
	<!-- 插入 -->
	<insert id="insertCard" useGeneratedKeys="true" parameterType="com.my.bean.Card">
	<!-- 获取刚插入的card的自动生成的主键id;(用来插入person表的card_id)-->
		<selectKey resultType="int" keyProperty="id" order="AFTER">
			<!-- select @@identity -->
			select last_insert_id();
		</selectKey>
		insert into tb_card(code) values(#{
   code})
	</insert>
	
	<!-- 删除,根据数据库的关联关系删除,即删除card,person也随之删除 -->
	<delete id="deleteCard">
		delete from tb_card where id=#{
   id}
	</delete>
	
	<!-- 修改 -->
	<update id="updateCard">
		update tb_card(code) values(#{
   code}) where id=#{
   id}
	</update>
	
</</
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值