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号