您的位置:首页 > 数据库

Mybatis下的数据库表自关联查询

2017-09-23 16:51 253 查看
简单粗暴点,直接上代码吧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);}3. 配置PrenticeMapper.xml文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//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;@Beforepublic void Before(){sqlSession = MyBatisUtil.getSqlSession();mapper = sqlSession.getMapper(PrenticeMapper.class);}@Afterpublic void After(){if(sqlSession!= null){sqlSession.close();}}@Testpublic void selectPrenticeByPid(){List<Prentice> prentices = mapper.selectPrenticeByPid(1);for (Prentice prentice : prentices) {System.out.println(prentice);}}}经测试,小龙女及其徒弟杨过,李莫愁及其徒弟洪凌波都被打印在控制台~~~关于查询师傅及其徒弟的信息,在此就不贴出来啦~~~不足之处,欢迎指正!
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: