MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)
前面几篇博客介绍的都是单表映射的一些操作,然而在我们的实际项目中往往是用到多表映射。至于多表映射的关键要用到mybitis的association来加以实现。
这篇介绍的是多表中的多对一表关联查询
先做一些准备工作
创建两张表:一张是用户,一张是用户所对应的移动手机,一户用户可以有部移动手机。
这是用户t_user表
这是移动电话t_mobile表
创建表对应的JavaBean对象
User对象
- package com.jefry;
- public class User {
- private int id;
- private String userName;
- private String password;
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- }
Mobile对象:
- package com.jefry;
- public class Mobile {
- private int id;
- private String telnumber;
- private User user;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getTelnumber() {
- return telnumber;
- }
- public void setTelnumber(String telnumber) {
- this.telnumber = telnumber;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- }
修改configure文件对象别名:
- <typeAliases>
- <typeAlias alias="User" type="com.jefry.User"/>
- <typeAlias alias="Mobile" type="com.jefry.Mobile"/>
- </typeAliases>
修改表映射文件
- <?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="mobile">
- <resultMap id="userResultMap" type="Mobile">
- <id property="id" column="id"/>
- <result property="telnumber" column="telnumber"/>
- <association property="user" javaType="User">
- <id property="id" column="id"/>
- <result property="userName" column="name"/>
- <result property="password" column="pass"/>
- </association>
- </resultMap>
- <!--多表查询操作-->
- <select id="selectMobile" parameterType="int" resultMap="userResultMap" >
- <!--分别为mobile的主键id与user的主键id赋值别名,避免因为两个表字段名称相同而注入到对应对象名称冲突-->
- select m.id m_id,m.telnumber,u.id u_id,u.name,u.pass from t_mobile m,t_user u where m.userid = u.id and m.id = #{id}
- </select>
- </mapper>
转载于:https://www.cnblogs.com/shijiaoyun/p/5157536.html
MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)相关推荐
- MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)
MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...
- MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)
类型别名(typeAliases): 作用:通过一个简单的别名来表示一个冗长的类型,这样可以降低复杂度. 类型别名标签typeAliases中可以包含多个typeAlias,如下 [ ...
- MyBitis(iBitis)系列随笔之六:mybitis与spring集成
目前Spring官方还没有出整合Mybatis的特性,但是mybitis比较给力,开发了一个mybatis-spring插件,达到与Spring的完美整合目的. 在与Spring集成前,一方面我们需要 ...
- mysql数据库实验查询_MySQL数据库表数据的查询操作实验
实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...
- MySQL学习-表记录的查询操作
数据中最常见的操作就是查询操作,也可以称作检索操作,目的是从表中检索出所需要的数据. select 语句: select 字段列表 from 表名或视图名 [where 条件表达式] [group b ...
- 【MySQL连表多对多】操作举例之【学生选课】
一.功能介绍及准备工作: 1.学生表 建一个学生信息的表,包含学生的姓名和主键(编号) 2.课程表 建一个课程信息的表,包含课程名和主键(编号) 3.学生选课表 建一个学生与课程关系的表,包括学生编号 ...
- 对emp表的一些查询操作
查看EMP表中部门号为10的员工的姓名,职位,参加工作时间,工资. SELECT ename,job,hiredate,sal FROM emp WHERE deptno =10; 计算每个员工的年薪 ...
- mysql查一个表3到5行的数据类型_MySQL入门(三) 数据库表的查询操作【重要】
序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...
- mysql水果表查询_最全MySQL数据库表的查询操作
序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...
- Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)
前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架.ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码 ...
最新文章
- canvas中文显示乱码 html5_浅析HTML5 Canvas的几种中文字体缩小方案
- 人脸识别常用数据集大全
- 计算机主机前耳机没声音,Win10电脑机箱前面板耳机没声音如何解决【解决方法】...
- 【c语言】打印出100以内奇数
- 快速排序c语言实现,快速排序——C语言实现
- 一级计算机考试电子表格排序筛选,重新应用Excel排序和筛选或清除筛选
- 案例|工业物联网解决方案·智慧钢厂高性能安全数采
- win10专业版 原版安装教程
- 网页特效--图片淡入淡出效果
- 免费的网课API接口附加题库
- 罗克韦尔AB PLC安装Studio5000提示未安装Microsoft .NET Framework 3.5的解决方法
- 计算机专业120分,【哈尔滨工业大学,专业课120分】跟你唠点真情实感。
- 数据分析-Excel基础操作
- 抖音运营从内容开始做起,抖音内容创作
- python打印日历小项目
- 移动端图片预览插件-fly-zomm-img.min.js
- 小米公司在互联网的地位怎么样
- CryEngine5.3(学习)
- android平板灵敏度,和平精英iPad最稳灵敏度怎么设置
- python画spc控制图_SPC系列8:如何选择计数型数据的SPC控制图?
热门文章
- Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
- NOIP2018初赛 解题报告
- 【转】如何在windows平台开发OpenGL程序使用OpenGL1.2或更高版本
- Data Structures(Chapter 3 of The Algorithm Design Manual)
- spring,springmvc,mybatis整合ssm框架出现ORA-02289:序列不存在问题
- UiAutomator2.0 和1.x 的区别
- FLEX中Tree默认展开全部节点
- XMPP作为一个工具的意义
- vs2005 生成安装包的时候提示“不可恢复的生成错误”
- python学习笔记 day42 对数据表的操作---增删改查