目前,我在做项目的时候,用到了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中多表联接查询相关推荐

  1. MySQL中多表连接查询总结与实践

    关联博文: MySQL中Union联合查询使用实践总结 连接查询:将多张表(>=2)进行 记录的连接(按照某个指定的条件进行数据拼接). 连接查询的意义:在用户查看数据的时候,数据往往来源于多张 ...

  2. 解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题)

    解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) 参考文章: (1)解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) (2)https: ...

  3. RDIFramework.NET 中多表关联查询分页实例

    RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...

  4. SpringJPA中多表关联查询并返回自定义dto带分页

    如题:要实现SpringJPA中多表关联查询并返回自定义dto带分页功能,使用SpringJAP的查询时暂时没找到合适的方法,也不想强制去给实体间做关联,于是有如下代码: 一.建立自己需要返回的dto ...

  5. oracle数据库多表联查并排序,oracle数据库之多表联接查询(一)

    --此文章可以作为sql脚本直接运行 /* 建表以及插入相关数据,为后面的查询做准备工作 */ --建学生信息表 create table studentinfo( stuid  int  prima ...

  6. mysql中一个表怎么查询多以上的信息,MySQL怎么样实现多个表的或查询?

    我想要像上图那样在两个表里面查询username,只有其中一个表有这个数据就返回true,但是MySQL判断必须两个表都有才返回true. 请问有什么办法可以实现这样的查询呢?(两个表中任何一个表有数 ...

  7. php左连接,如何在php中对左联接查询返回的数组数据进...

    我有以下具有以下值的2表: tbl_brand ID名称 1个苹果 2三星 tbl_products ID brand_id p_name 1个1移动 2个1 Earpods 3 2移动 在这里,当我 ...

  8. mysql中多表联合查询语句_mysql中的多表联合查询语句是什么

    mysql中的多表联合查询语句是:[select 语句1 union [union 选项] select 语句2 union [union 选项] select 语句n].多表联合查询结果是将多个se ...

  9. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

最新文章

  1. 华为电视测试软件,华为智慧屏电视安装第三方软件,简单实测可行攻略
  2. 收集一些工作中常用的经典SQL语句
  3. mysql php状态函数_mysql_stat()查询MySQL服务器当前系统状态
  4. 为什么设计师创造的编程语言更受欢迎?
  5. Angular4.x 安装|创建项目|目录结构|创建组件
  6. 华为新系统鸿蒙有哪些手机_如今鸿蒙手机之后,华为启用新系统,谷歌微软措手不及...
  7. 实验一 命令解释程序的编写
  8. IBM Rational总经理夏然谈程序员生涯
  9. Jdbc -Statement
  10. hibernate sql 执行两次_使用 Hibernate 和 MySQL 需要知道的五件事
  11. Windows系统的32位和64位系统区别
  12. 使用GDB进行嵌入式远程调试
  13. ERR_FILE_NOT_FOUND错误
  14. 最新资料!工银亚洲开户见证业务受理网点(广东地区,除了深圳)
  15. 获取B站SESSDATA及解决403
  16. 【干货】APP解构重构,让你用户不再流失
  17. 类名.claa 的含义
  18. edge 错误 客户端和服务器不支持常用的 SSL 协议版本或密码套件
  19. panic: runtime error: invalid memory address or nil pointer dereference
  20. .NET 6 实现滑动验证码(七)、生成验证码

热门文章

  1. MySql连接查询与联合查询
  2. VTK:vtkAnimationScene用法实战
  3. OpenCASCADE绘制测试线束:拓扑命令之基本拓扑
  4. wxWidgets:wxAuiManager类用法
  5. boost::push_front相关的测试程序
  6. boost::math模块具有输出和输入方面的非有限环回的简要基本测试
  7. boost::locale::utf8_codecvt用法的测试程序
  8. boost::gregorian模块实现测试当天的程序
  9. DCMTK:OFDate, OFTime and OFDateTime类的测试程序
  10. DCMTK:DIMSE状态代码和类的测试程序