上篇博客学习了一对多查询,这次看多对一。这次同样适用国家和部长的例子,由于实体,数据库一样。这里直接给出代码。还是先给出项目结构图
1、定义实体
2、定义数据库
国家表:country
部长表:minister
3、定义接口
public interface IMinisterDao {
Minister selectMinisterById(int id);
}
4、定义测试类
public class MyTest {
private IMinisterDao dao ;
private SqlSession sqlSession;
@Before
public void testBefore(){
sqlSession = MybatisUtil.getSqlSession();
dao = sqlSession.getMapper(IMinisterDao.class);
}
@After
public void after(){
if(sqlSession!=null){
sqlSession.close();
}
}
@Test
public void testSelectMinisterById() {
Minister minister=dao.selectMinisterById(1);
System.out.println(minister);
}
}
5、定义映射文件
A:多表链接查询
B:多表单独查询
<?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.test.dao.IMinisterDao">
<select id="selectCountryById" resultType="Country">
select cid,cname from country where cid=#{ooo}
</select>
<resultMap type="Minister" id="ministerMapper">
<id column="mid" property="mid"/>
<result column="mname" property="mname"/>
<association property="country"
javaType="Country"
select="selectCountryById"
column="countryid"/>
</resultMap>
<select id="selectMinisterById" resultMap="ministerMapper">
select mid,mname,countryid from minister where mid=#{xxx}
</select>
</mapper>
6、其他类
其他类的代码,在上一篇博客里面。