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;
		}

  

二、多对一关系:

一对多关系

 

 

 

 

posted @ 2018-11-05 19:36  少侠gqk  阅读(243)  评论(0编辑  收藏  举报