1、class NewsLabel
package com.beans;
import java.io.Serializable;
import java.util.Set;
public class NewsLabel implements Serializable {
private Integer id;
private String name;
private Set<NewsLabel> childrens;
2、INewsLabelDao
package com.dao;
import java.util.List;
import com.beans.NewsLabel;
public interface INewsLabelDao {
NewsLabel selectById(Integer id);
}
3、mapper.xml
<?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.dao.INewsLabelDao">
<select id="selectChildren" resultMap="selectChildren">
SELECT ID, NAME FROM NEWSLABEL WHERE PID = #{PID}
</select>
<resultMap type="com.beans.NewsLabel" id="selectChildren">
<id column="id" property="id"/>
<result column="name" property="name"/>
<collection property="childrens" ofType="com.beans.NewsLabel" select="selectChildren" column="id"/>
</resultMap>
<select id="selectById" resultMap="selectChildren">
SELECT ID, NAME FROM NEWSLABEL WHERE ID = #{ID}
</select>
</mapper>
4、MyTest
package com.test;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Test;
import com.beans.NewsLabel;
import com.dao.INewsLabelDao;
import com.utils.SqlSessionUtils;
public class MyTest {
private INewsLabel dao;
private SqlSession sqlSession;
@org.junit.Before
public void before() {
sqlSession = SqlSessionUtils.getSqlSession();
dao = sqlSession.getMapper(INewsLabelDao.class);
}
@After
public void After() {
if (sqlSession != null) {
sqlSession.close();
}
}
@Test
public void test01() {
NewsLabel newsLabel = dao.selectById(2);
System.out.println(newsLabel);
}
}