mybatis学习:八
2017-06-01 15:31
134 查看
一对一关联查询
首先创建实体bean
创建接口
编写配置文件
测试结果
首先创建实体bean
public class Classes { private int id; private String name; private Teacher teacher; public Classes() { super(); } public Classes(int id, String name, Teacher teacher) { super(); this.id = id; this.name = name; this.teacher = teacher; } @Override public String toString() { return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher + "]"; } public void setId(int id) { this.id = id; } public int getId() { return id; } public void setName(String name) { this.name = name; } public String getName() { return name; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } }
public class Teacher{ private int id; private String name; public Teacher(){ super(); } public Teacher(int id,String name){ super(); this.id = id; this.name = name; } @Override public String toString(){ return "Teacher [id=" + id + ", name=" + name + "]"; } public void setId(int id){ this.id = id; } public int getId(){ return id; } public void setName(String name){ this.name = name; } public String getName(){ return name; } }
创建接口
public interface IClassesDao { /** * 使用表连接查询 * @param id * @return */ public Classes selectClasses1(int id); /** * 使用子查询 * @param id * @return */ public Classes selectClasses2(int id); }
编写配置文件
<mapper namespace="com.han.mybatis.dao.IClassesDao"> <!-- 注意连接查询中列名不能重复,若重复则需要重命名列名 --> <select id="selectClasses1" resultMap="ClassResultMap"> select c.id,c.name,t.id tid,t.name tname from Classes c ,teacher t where teacherid=t.id and c.id = #{id} </select> <resultMap type="Classes" id="ClassResultMap"> <id column="id" property="id"/> <result column="name" property="name"/> <association property="teacher" javaType="Teacher"> <id column="tid" property="id"/> <result column="tname" property="name"/> </association> </resultMap> <!-- 正常查询,resultMap设置为定义的resultMap --> <select id="selectClasses2" resultMap="ClassResultMap2"> select * from classes where id=#{id} </select> <resultMap type="Classes" id="ClassResultMap2"> <id column="id" property="id"/> a9a5 <result column="name" property="name"/> <association property="teacher" column="teacherid" select="getTeacher"></association> </resultMap> <select id="getTeacher" parameterType="int" resultType="teacher"> select * from teacher where id = #{id} </select> </mapper>
测试结果
@Test public void selectClasses1Test(){ SqlSession sqlSession = MyBatisUtil.openSqlSession(); IClassesDao classesDao = sqlSession.getMapper(IClassesDao.class); Classes cs = classesDao.selectClasses1(1); System.out.println(cs); } @Test public void selectClasses2Test(){ SqlSession sqlSession = MyBatisUtil.openSqlSession(); IClassesDao classesDao = sqlSession.getMapper(IClassesDao.class); Classes cs = classesDao.selectClasses2(1); System.out.println(cs); }
相关文章推荐
- MyBatis For .NET学习笔记[2]:配置环境
- MyBatis学习(一)一个简单的例子
- MyBatis学习 之 三、动态SQL语句
- mybatis相关学习资料以及插件
- MyBatis 学习笔记
- MyBatis学习
- MyBatis学习 之 四、MyBatis配置文件
- mybatis 学习 二、SQL语句映射文件(2)增删改查、参数、缓存
- mybatis 学习 四、MyBatis主配置文件
- MyBatis学习(二)分析源代码-总配置相关
- MyBatis For .NET学习笔记[3]:工作原理解析
- (1) MyBatis学习之准备--配置数据源、创建公用类
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
- 几篇MyBatis学习不错的文章
- Mybatis JPetStore 学习笔记(一)
- MyBatis For .NET学习笔记:开篇
- MyBatis For .NET学习笔记[3]:工作原理解析
- mybatis学习日记1
- Mybatis 入门学习,简单例子
- Mybatis学习笔记一(环境搭建)