创建一个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的具体内容。