mybatis学习:八
来源:互联网 发布:网络公司简介怎么写 编辑:程序博客网 时间:2024/05/19 16:06
一对一关联查询
首先创建实体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"/> <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); }
阅读全文
1 0
- MyBatis学习八:foreach
- mybatis学习:八
- 【Mybatis学习总结八】Mybatis缓存
- Maven学习(八)- 构建MyBatis项目
- Maven学习(八)- 构建MyBatis项目
- Maven学习(八)- 构建MyBatis项目
- MyBatis学习笔记(八)分页查询
- Maven学习(八)- 构建MyBatis项目
- mybatis学习笔记(八)Sqlsession详解
- Mybatis学习笔记八:代码自动生成
- Maven学习(八)- 构建MyBatis项目
- Mybatis学习笔记(八)【输出映射】
- MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八
- MyBatis学习(八)- MyBatis分页实现 - Oracle
- Maven的学习资料收集--(八) 构建MyBatis项目
- MyBatis学习系列八:多表查询二
- mybatis学习教程中级(八)延迟加载
- MyBatis学习总结(八)——Mybatis3.x…
- kafka的安装配置跟基本使用
- Windows server 2012下搭建MySQL数据库并创建远程连接
- SpringBoot整合Mybatis多数据源
- 金蝶EAS·BOS,客户端操作添加进度栏,进度条
- CSU 1804 有向无环图 拓扑序DP
- mybatis学习:八
- 写博客画图工具,非学术
- 堆排序
- svn禁止删除权限和日志长度限制的脚本书写
- java中利用javax.xml.transform.Transformer将xml通过xsl样式转化成html
- 关于Tomcat容器加载的一些问题
- 训练集,验证集和测试集的关系
- 机器学习和深度学习库速查表
- [Python]多线程网址爬虫:控制线程数,爬虫深度