MyBatis一对一关系映射

1、使用的数据脚本为:

DROP DATABASE IF EXISTS mybatisdb ;
CREATE DATABASE mybatisdb CHARACTER SET UTF8 ;
USE mybatisdb ;
-- 创建数据表
CREATE TABLE member_login (
    mid         VARCHAR(50) ,
    password        VARCHAR(50) ,
    CONSTRAINT pk_mid PRIMARY KEY(mid)
) ;
CREATE TABLE member_details (
    mid         VARCHAR(50) ,
    name        VARCHAR(50) ,
    age         INT ,
    CONSTRAINT pk_mid2 PRIMARY KEY(mid) ,
    CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCES member_login(mid) ON DELETE CASCADE           
) ;

2、准备好对应的vo类

public class MemberLogin implements Serializable {
private String mid ;
private String password ;
private MemberDetails details ;
}
public class MemberDetails implements Serializable {
private String mid ;
private String name ;
private Integer age ;
private MemberLogin login ;
}
//省略set和get方法

3、准备MyBatis需要的配置文件;
创建MemberLogin.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vo.mapping.MemberLoginNS">
    <resultMap type="MemberLogin" id="MemberLoginMap">
        <id column="mid" property="mid" />
        <result column="password" property="password" />
    </resultMap>
</mapper>

创建MemberDetails.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vo.mapping.MemberDetailsNS">
    <resultMap type="MemberDetails" id="MemberDetailsMap">
        <id column="mid" property="mid" />
        <result column="name" property="name" />
        <result column="age" property="age" />
    </resultMap>
</mapper>

定义操作别名和映射路径

<typeAliases>
    <typeAlias type="cn.mldn.vo.MemberLogin" alias="MemberLogin"/>
    <typeAlias type="cn.mldn.vo.MemberDetails" alias="MemberDetails"/>
</typeAliases>
<mapper namespace="vo.mapping.MemberLoginNS"/>

4、一对一的关系匹配关键在于MemberLogin.xml 与MemberDetails.xml 文件上。
· 修改MemberLogin.xml 文件,追加resultMap 的映射:

<resultMap type="MemberLogin" id="MemberLoginMap">
    <id column="mid" property="mid" />
    <result column="password" property="password" />
    <association property="details" javaType="MemberDetails" column="mid" select="vo.mapping.MemberDetailsNS.findById" />
</resultMap>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值