mybatis关联查询

创建一个country表和一个minister表。

create table country(

cid  int  primarykey  ,

cname  varchar(20) not null

);

create table minister(

mid int primarykey ,

mname varchar(20)  not null ,

countryid int  not null 

)

javabean:

country类

package com.cbh.beans;

import java.util.Set;

public class Country {
private Integer cid;
private String cname;
//关联属性
private Set<Minister> minister;
@Override
public String toString() {
	return "Country [cid=" + cid + ", cname=" + cname + ", minister="
			+ minister + "]";
}
public Integer getCid() {
	return cid;
}
public void setCid(Integer cid) {
	this.cid = cid;
}
public String getCname() {
	return cname;
}
public void setCname(String cname) {
	this.cname = cname;
}
public Set<Minister> getMinister() {
	return minister;
}
public void setMinister(Set<Minister> minister) {
	this.minister = minister;
}
}
minister类:

package com.cbh.beans;

public class Minister {
private Integer mid;
private String mname;
public Integer getMid() {
	return mid;
}
public void setMid(Integer mid) {
	this.mid = mid;
}
public String getMname() {
	return mname;
}
public void setMname(String mname) {
	this.mname = mname;
}
@Override
public String toString() {
	return "Minister [mid=" + mid + ", mname=" + mname + "]";
}
}

dao:

package com.cbh.dao;

import com.cbh.beans.Country;

public interface ICountryDao {
Country selectCountryById(int cid);
}
mapper:

<?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="com.cbh.dao.ICountryDao">
<resultMap type="Country" id="countryMapper">
	<id column="cid" property="cid" />
	<result column="cname" property="cname" />
	<collection property="minister" ofType="Minister">
		<id column="mid" property="mid" />
		<result column="mname" property="mname" />
	</collection>
</resultMap>
<select id="selectCountryById" resultMap="countryMapper">
	select cid,cname,mid,mname from country,minister where countryId=cid and
	cid=#{xxx}

</select>
</mapper>
		

mapper需要仔细的看由于是关联查询mapper中resulttype存在两个对象在这里是使用的resultmap

测试类:

package com.cbh.test;

import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;

import com.cbh.Utils.MybatisUtils;
import com.cbh.beans.Country;
import com.cbh.dao.ICountryDao;

public class mytest {
	private ICountryDao dao;
	private SqlSession sqlSession;
	@Before
	public void Befroe(){
		sqlSession=MybatisUtils.getSqlSession();
		dao=sqlSession.getMapper(ICountryDao.class);
		}
@After
public void after(){
if(sqlsession!=null){
sqlsession.close();
}
	
}
@Test
public void test1(){
Country country=dao.selectCountryById(2);
System.out.println(country);
}
}
mybatis.xml由于没有改动所以就没必要写出来。对于不明白可以看我的mybatis两个重要配置文件中有mybatis的具体内容。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值