Mybatis映射关系
作者:gqk
一、一对一关系:
比如说一个老婆对应一个丈夫,一个丈夫对应一个老婆:
1)数据库信息
create table t_wife( id number primary key, wifename varchar2(50), fk_husband_id number ) create table t_husband( id number primary key, husbandname varchar2(50) ) insert into t_wife values(1,'赵丽颖',1); insert into t_husband values(1,'gqk');
2)创建javaBean
Husband
package com.xkrj.vo;
public class Husband {
private int personid;
private String husbandname;
private Wife wife;
public int getPersonid() {
return personid;
}
public void setPersonid(int personid) {
this.personid = personid;
}
public String getHusbandname() {
return husbandname;
}
public void setHusbandname(String husbandname) {
this.husbandname = husbandname;
}
public Wife getWife() {
return wife;
}
public void setWife(Wife wife) {
this.wife = wife;
}
}
Wife
package com.xkrj.vo;
public class Wife {
private int wifeid;
private String wifename;
private Husband husband;
public int getWifeid() {
return wifeid;
}
public void setWifeid(int wifeid) {
this.wifeid = wifeid;
}
public String getWifename() {
return wifename;
}
public void setWifename(String wifename) {
this.wifename = wifename;
}
public Husband getHusband() {
return husband;
}
public void setHusband(Husband husband) {
this.husband = husband;
}
}
3)接下来建立两个接口,HusbandMapper,WifeMapper.
package com.xkrj.dao;
import com.xkrj.vo.Husband;
import com.xkrj.vo.Wife;
public interface HusbandMapper {
//根据id查询丈夫信息
public Husband queryHusbandById(int id);
//根据id查询妻子信息
public Wife queryWifeById(int id);
}
4)配置一对一
<?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.xkrj.dao.HusbandMapper">
<resultMap type="com.xkrj.vo.Husband" id="resultHusband">
<id property="personid" column="id" />
<result property="husbandname" column="husbandname" />
<association property="wife" column="id" select="queryWifeById"></association>
</resultMap>
<!-- resultMap 命名引用外部的 resultMap。返回的是一个集合。 -->
<select id="queryHusbandById" resultMap="resultHusband" parameterType="int">
select * from t_husband where id=#{id}
</select>
<select id="queryWifeById" resultType="com.xkrj.vo.Wife">
select * from t_wife where id = #{id}
</select>
</mapper>
5)测试:
public static Husband queryHusbandById(int id) throws IOException{
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
HusbandMapper hm = session.getMapper(HusbandMapper.class);
Husband hd = hm.queryHusbandById(id);
return hd;
}

二、多对一关系:

一对多关系


浙公网安备 33010602011771号