简单粗暴点,直接上代码吧
mysql创建一张表,表名prentice
表中林朝英有两个徒弟,分别是小龙女和李莫愁。而小龙女有徒弟杨过,李莫愁有徒弟洪凌波。
现在需要通过pid查询出师傅所收的全部徒弟信息。
1. 创建 Prentice实体类 (略)
2. 创建PrenticeMapper接口
package com.wl.mapper;
import java.util.List;
import com.wl.pojo.Prentice;
//根据pid查询徒弟信息
public interface PrenticeMapper {
List<Prentice> selectPrenticeByPid(int pid);
}
<?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.wl.mapper.PrenticeMapper">
<resultMap type="Prentice" id="prenticeMapper">
<id column="id" property="id"/>
<result column="name" property="name"/>
<collection property="prentices"
ofType="Prentice"
select="selectPrenticeByPid"
column="id"/>
</resultMap>
<select id="selectPrenticeByPid" resultMap="prenticeMapper">
select id,name from prentice where pid=#{pid}
</select>
</mapper>
4. 工具类MybatisUtil及mybatis.xml 文件的配置此处就略写啦,相信大家都能搞定。下面就直接上测试
5. 测试类
public class TestPrentice {
private PrenticeMapper mapper;
private SqlSession sqlSession;
@Before
public void Before(){
sqlSession = MyBatisUtil.getSqlSession();
mapper = sqlSession.getMapper(PrenticeMapper.class);
}
@After
public void After(){
if(sqlSession!= null){
sqlSession.close();
}
}
@Test
public void selectPrenticeByPid(){
List<Prentice> prentices = mapper.selectPrenticeByPid(1);
for (Prentice prentice : prentices) {
System.out.println(prentice);
}
}
}
经测试,小龙女及其徒弟杨过,李莫愁及其徒弟洪凌波都被打印在控制台~~~
关于查询师傅及其徒弟的信息,在此就不贴出来啦~~~
不足之处,欢迎指正!