ibatis中多表联接查询
目前,我在做项目的时候,用到了spring + struts2 +ibatis 框架。平时用到的都是一张简单的表,来进行数据的增、删、改、查。而现在突然需要用到其它的一张表,或多张表进行联接查询,那么,在这种情况下,在xml映射文件中,就不能像单张表映射那样。 那么,我们需要怎么处理呢?
下面我就简单的来说明一下:
1、假如我数据库中有两张表:topo表和device表;
2、它们分别对应两个实体类:Topo.class和Device.class
3、我们需要做的就是把这两个实体类再整合出一个联合的实体类:TopoDeviceUnion.class(Topo.class和Device.class的联合实体类),这个实体类中的属性,就是你在联接查询时能够用到的全部字段。
4、在xml映射文件中把TopoDeviceUnion.class中所有的属性全部都加进去。
代码实现如下:
Topo.class
public class Topo { private String id; private String name; private String ....; private Integer....; . . . (省略其它的属性) //get方法、set方法... }
Device.class
<pre name="code" class="java">public class Device{ private String loopbackIp; private String deviceModel; private String ....; private Integer....; . . . (省略其它的属性) //get方法、set方法... }
TopoDeviceUnion.class
public class TopoDeviceUnion{ private String id; private String name; private String lookbackIp; private String deviceModel; //get方法、set方法... }
xml映射文件
<pre name="code" class="java"><?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="topodevice"> <resultMap class="TopoDeviceUnion" id="resultMap_queryAllTopoDevice"> <result property="id" column="id" jdbcType="varchar"/> <result property="name" column="name" jdbcType="varchar"/> <result property="loopbackIp" column="loopback_ip" jdbcType="varchar"/> <result property="deviceModel" column="device_model" jdbcType="varchar"/> </resultMap> <select id="queryAllTopoDevice" parameterClass="TopoDeviceUnion" resultMap="resultMap_queryAllTopoDevice"> select b.id,b.name,a.loopback_ip,a.device_model from device a,topo b where a.device_id=b.device_id; </select> </sqlMap>
这样就完成了 ,这是两张表的联接查询 ,多张表查询和这相同,希望能给大家带来帮助。 有什么不明白的地方,或者是有更好的办法可以互相交流。
ibatis中多表联接查询的更多相关文章
- MyBatis 中两表关联查询MYSQL (14)
MyBatis 中两表关联查询MYSQL 1.创建数据库表语句 2.插入测试数据 3.pom文件内容 <?xml version="1.0" encoding="U ...
- RDIFramework.NET 中多表关联查询分页实例
RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...
- Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name ...
- [moka同学笔记]Yii2中多表关联查询(join、joinwith) (摘录)
表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name cu ...
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
- T-SQL表联接查询
由于实践不足,总是忘记SQL Server 联接表查询的细节,在这里记录以便查询. 一.交叉联接 交叉联接仅执行一个罗辑查询处理阶段——笛卡尔积.也就是说,将一个输入表的每一行与另一个表的所有行匹配. ...
- Yii2中多表关联查询(hasOne、hasMany、join、joinwith)
表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name customer_id ...
- 【SQL】在SQL Server中多表关联查询问题
好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...
随机推荐
- Spring常用配置(二)
OK,上篇博客我们介绍了Spring中一些常见的配置,上篇博客中介绍到的都是非常常见的注解,但是在Spring框架中,常见的注解除了上篇博客提到的之外,还有许多其他的注解,只不过这些注解相对于上文提到 ...
- SRAM/DRAM,PROM/EPROM/EEPROM,NOR/NAND FLASH区别
SRAM/DRAM,PROM/EPROM/EEPROM,NOR/NAND FLASH区别 RAM / ROM 存储器 ROM和RAM指的都是半导体存储器,R ...
- linux源码编译安装OpenCV
为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...
- tomcat启动批处理——setclasspath.bat
除了上面两个批处理,还有一个比较重要的脚本,即是setclasspath.bat,它主要负责寻找.检查JAVA_HOME和JRE_HOME两个变量. ************************* ...
- Swift中类似C++和ruby中的final机制
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在C++和ruby语言的错误处理中有一种final机制 ...
- iOS9中关于地址簿ABAddressBookXXX之类方法被废弃的解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在iOS9的SDK中我们会发现原来地址簿权限查询,获取以及创建 ...
- Android开发学习之路--图表实现(achartengine/MPAndroidChart)之初体验
已经有一段时间没有更新博客了,在上周离开工作了4年的公司,从此不再安安稳稳地工作了,更多的是接受挑战和实现自身价值的提高.离开了嵌入式linux,从此拥抱移动互联网,也许有点为时已晚,但是相信通过 ...
- Linux内核编译时会遇到的问题--缺少mkimage
由于各大平台所带的内核不同,所以编译方式也不同,但方法都是大同小异. 但是,编译内核有时候会提示缺少mkimage这个命令,如何解决? 供应商提供内核的同时也会提供其它的一些,比如Uboot,root ...
- listview下拉刷新上拉加载扩展(二)-仿美团外卖
经过前几篇的listview下拉刷新上拉加载讲解,相信你对其实现机制有了一个深刻的认识了吧,那么这篇文章我们来实现一个高级的listview下拉刷新上拉加载-仿新版美团外卖的袋鼠动画: 项目结构: 是 ...
- (copy)赋值构造函数的4种调用时机or方法
第一种调用方法: demo #include <iostream> using namespace std; class Text { public: Text() // 无参数构造函数 ...