IBatis一对多嵌套查询
1)类
public class AppData
{
// public int ModuleId { get; set; }
public int DataId { get; set; }
public int DataSequence { get; set; }
public string ContentValue { get; set; }
}
public class AppModuleJoin
{
//public int PageId { get; set; }
public int ModuleId { get; set; }
public IList<AppData> DataList { get; set; }
//public int DataId { get; set; }
//public int DataSequence { get; set; }
//public string ContentValue { get; set; }
}
public class AppModule
{
//public int PageId { get; set; }
public int ModuleId { get; set; } //public int DataId { get; set; }
//public int DataSequence { get; set; }
//public string ContentValue { get; set; }
}
public class AppPageJoin
{
public int PageId { get; set; }
public IList<AppModuleJoin> ModuleList { get; set; }
}
public class AppPage
{
public int PageId { get; set; } }
sqlxml
<?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="App" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<alias>
<typeAlias alias="AppPageJoin" type="IBatis.AppPageJoin"/>
<typeAlias alias="AppPage" type="IBatis.AppPage"/>
<typeAlias alias="AppModule" type="IBatis.AppModule"/>
<typeAlias alias="AppModuleJoin" type="IBatis.AppModuleJoin"/>
<typeAlias alias="AppData" type="IBatis.AppData"/>
</alias>
<resultMaps>
<!--<resultMap id="AppModuleReslut" class="AppModule">
--><!--<result property="PageId" column="PageId"/>--><!--
<result property="ModuleId" column="ModuleId"/>
<result property="DataId" column="DataId"/>
<result property="DataSequence" column="DataSequence"/>
<result property="ContentValue" column="ContentValue"/>
</resultMap>--> <resultMap id="AppDataReslut" class="AppData">
<!--<result property="PageId" column="PageId"/>-->
<!--<result property="ModuleId" column="ModuleId"/>-->
<result property="DataId" column="DataId"/>
<result property="DataSequence" column="DataSequence"/>
<result property="ContentValue" column="ContentValue"/>
</resultMap> <resultMap id="AppModuleReslut" class="AppModule">
<!--<result property="PageId" column="PageId"/>-->
<result property="ModuleId" column="ModuleId"/> </resultMap> <resultMap id="AppPageReslut" class="AppPage">
<result property="PageId" column="PageId"/>
</resultMap> <resultMap id="AppPageModuleJoinReslut" class="AppModuleJoin" extends="AppModuleReslut" groupBy="ModuleId">
<result property="DataList" resultMapping="App.AppDataReslut" />
</resultMap> <resultMap id="AppPageJoinReslut" class="AppPageJoin" extends="AppPageReslut" groupBy="PageId">
<result property="ModuleList" resultMapping="App.AppPageModuleJoinReslut" />
</resultMap>
</resultMaps>
<statements>
<select id="QueryData" resultMap="AppPageJoinReslut">
select *
from QueryData
</select> </statements>
</sqlMap>
在调用中
public IList<AppPageJoin> QueryData()
{
ISqlMapper mapper = _sqlMap;
IList<AppPageJoin> ListPerson = mapper.QueryForList<AppPageJoin>("QueryData", null); //这个"SelectAllPerson"就是xml映射文件的Id
return ListPerson;
}
IBatis一对多嵌套查询的更多相关文章
- mybatis一对一 和 一对多 嵌套查询
实际项目中的,接口对外VO 会出现 一对一 和 一对多的情况,举例:小区 下面有 楼栋 ,楼栋 下面有 房屋 , 房屋里面又房间 小区Vo : districtVo { id: nam ...
- 使用mybatis进行一对多嵌套查询时出错:输出结果:Country{id=2, name='美国', minister=[null]}
即Minister类作为Country类的关联属性. 查询的输出结果是:Country{id=2, name='美国', minister=[null]} <!--mapper.xml内容--& ...
- 嵌套查询--------关联一对多关系----------collection
参考来源: http://www.cnblogs.com/LvLoveYuForever/p/6689577.html <resultMap id="BaseResultMap&q ...
- ibatis 中动态SQL查询和动态标签嵌套的使用
ibatis 动态查询对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate.JPA 这样的一站式对象 / 关系映射(O/R Mapping)解 ...
- 7.mybatis一对多关联查询
和第5节一对一查询类似,但是不同的是,一对一使用的是association,而一对多使用collection. 实例: 1个班级Class,对应1个老师Teacher,对应多个学生Student 1. ...
- elasticsearch elk最全java api 搜索 聚合、嵌套查询
目录 一. 一般查询... 2 (一) matchAllQuery(client). 2 (二) matchQuery(client);3 (三) multiMatchQuery(client);3 ...
- mybatis的动态sql编写以及一对一关系查询和一对多的查询
创建mybatis数据库,运行以下sql语句 /* SQLyog Ultimate v8.32 MySQL - 5.5.27 : Database - mybatis **************** ...
- mybatis中使用懒加载实现一对多复杂查询
1.包结构 2.pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- Mybatis通过接口实现一对一及一对多的查询
实现一对一是采用association方法: <resultMap type="testId" id="users"> <associatio ...
随机推荐
- 1104关于优化mysql服务器几个参数和思路
转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...
- OKhttp初步
OkHttp 使用方法:1.分为同步和异步.同步:1.getRequest request = new Request.Builder().url(utl).build();Response resp ...
- Retrofit 2.1 入门
Retrofit 2.1入门 , map); try { Response<String>body=call.execute(); System.out. ...
- 如何用linux命令查看nginx是否在正常运行
有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况. 执行命令: ps -A | grep nginx 如果返回结果的话,说明有nginx在运行,服务已经启动. 如果 ...
- iOS开发小技巧--修改按钮内部图片和文字之间的间距(xib)
调整按钮的Edge属性,选择调整图片的Edge还是label的Edge,如图:
- sql-truncate,delete,drop删除表数据的区别
TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删除其全部行的表的名称. 注释 TRUNC ...
- java -日期
package com.qinghuainvest.tsmarket.util; import java.text.ParseException; import java.text.SimpleDat ...
- python Chrome 开发者模式消失的方法
最近使用 Chrome浏览器跑Selenium Python 自动化脚本运行过程中,总是出现这样的对话框 出现这样的对话框,如果不能自动关闭,这个对话框会影响web端页面的其他链接的定位识别,这样就 ...
- 理解 Java 的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- 【POJ 1389】Area of Simple Polygons(线段树+扫描线,矩形并面积)
离散化后,[1,10]=[1,3]+[6,10]就丢了[4,5]这一段了. 因为更新[3,6]时,它只更新到[3,3],[6,6]. 要么在相差大于1的两点间加入一个值,要么就让左右端点为l,r的线段 ...