本文将阐述mybatis中的表在多对一关系的情况下完成查询操作。
1、环境约束
- win10 64位操作系统
- idea2018.1.5
- jdk-8u162-windows-x64
- mybatis3.2.8
- mysql 6.5
2、前提约束
- 完成mybatis一对多的查询 https://www.jianshu.com/p/5282a4443155
操作步骤
- 在UserMapper.java增加方法声明
Student getStudent(int id);
- 在UserMapper.xml增加标签
<resultMap id="getStudentResultMap" type="net.wanho.entity.Student">
<id property="id" column="id" ></id>
<result property="name" column="name" ></result>
<association property="clazz" column="classid" select="selectClass">
</association>
</resultMap>
<resultMap id="selectClassResultMap" type="net.wanho.entity.Clazz">
<id property="id" column="id"></id>
<result property="name" column="name"></result>
</resultMap>
<select id="getStudent" parameterType="java.lang.Integer" resultMap="getStudentResultMap">
select * from t_student where id=#{id}
</select>
<select id="selectClass" resultMap="selectClassResultMap">
select * from t_class where id=#{classid}
</select>
- 测试
String resource ="mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Student student = userMapper.getStudent(1);
System.out.println(student);
以上就是在mybatis完成多对一查询的过程。