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中多表联接查询相关推荐
- MySQL中多表连接查询总结与实践
关联博文: MySQL中Union联合查询使用实践总结 连接查询:将多张表(>=2)进行 记录的连接(按照某个指定的条件进行数据拼接). 连接查询的意义:在用户查看数据的时候,数据往往来源于多张 ...
- 解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题)
解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) 参考文章: (1)解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) (2)https: ...
- RDIFramework.NET 中多表关联查询分页实例
RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...
- SpringJPA中多表关联查询并返回自定义dto带分页
如题:要实现SpringJPA中多表关联查询并返回自定义dto带分页功能,使用SpringJAP的查询时暂时没找到合适的方法,也不想强制去给实体间做关联,于是有如下代码: 一.建立自己需要返回的dto ...
- oracle数据库多表联查并排序,oracle数据库之多表联接查询(一)
--此文章可以作为sql脚本直接运行 /* 建表以及插入相关数据,为后面的查询做准备工作 */ --建学生信息表 create table studentinfo( stuid int prima ...
- mysql中一个表怎么查询多以上的信息,MySQL怎么样实现多个表的或查询?
我想要像上图那样在两个表里面查询username,只有其中一个表有这个数据就返回true,但是MySQL判断必须两个表都有才返回true. 请问有什么办法可以实现这样的查询呢?(两个表中任何一个表有数 ...
- php左连接,如何在php中对左联接查询返回的数组数据进...
我有以下具有以下值的2表: tbl_brand ID名称 1个苹果 2三星 tbl_products ID brand_id p_name 1个1移动 2个1 Earpods 3 2移动 在这里,当我 ...
- mysql中多表联合查询语句_mysql中的多表联合查询语句是什么
mysql中的多表联合查询语句是:[select 语句1 union [union 选项] select 语句2 union [union 选项] select 语句n].多表联合查询结果是将多个se ...
- 【SQL】在SQL Server中多表关联查询问题
好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...
最新文章
- 华为电视测试软件,华为智慧屏电视安装第三方软件,简单实测可行攻略
- 收集一些工作中常用的经典SQL语句
- mysql php状态函数_mysql_stat()查询MySQL服务器当前系统状态
- 为什么设计师创造的编程语言更受欢迎?
- Angular4.x 安装|创建项目|目录结构|创建组件
- 华为新系统鸿蒙有哪些手机_如今鸿蒙手机之后,华为启用新系统,谷歌微软措手不及...
- 实验一 命令解释程序的编写
- IBM Rational总经理夏然谈程序员生涯
- Jdbc -Statement
- hibernate sql 执行两次_使用 Hibernate 和 MySQL 需要知道的五件事
- Windows系统的32位和64位系统区别
- 使用GDB进行嵌入式远程调试
- ERR_FILE_NOT_FOUND错误
- 最新资料!工银亚洲开户见证业务受理网点(广东地区,除了深圳)
- 获取B站SESSDATA及解决403
- 【干货】APP解构重构,让你用户不再流失
- 类名.claa 的含义
- edge 错误 客户端和服务器不支持常用的 SSL 协议版本或密码套件
- panic: runtime error: invalid memory address or nil pointer dereference
- .NET 6 实现滑动验证码(七)、生成验证码
热门文章
- MySql连接查询与联合查询
- VTK:vtkAnimationScene用法实战
- OpenCASCADE绘制测试线束:拓扑命令之基本拓扑
- wxWidgets:wxAuiManager类用法
- boost::push_front相关的测试程序
- boost::math模块具有输出和输入方面的非有限环回的简要基本测试
- boost::locale::utf8_codecvt用法的测试程序
- boost::gregorian模块实现测试当天的程序
- DCMTK:OFDate, OFTime and OFDateTime类的测试程序
- DCMTK:DIMSE状态代码和类的测试程序