ibatis中多表联接查询
生活随笔
收集整理的這篇文章主要介紹了
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中多表联接查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 修改IP, DNS 命令
- 下一篇: 怎么开一家剧本杀店 分享一些简单的技巧经