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 ...
随机推荐
- Android开发之ViewPager的简单使用
ViewPager是V4包中的,如果你的编译器敲不出ViewPager,那么你就需要添加,看下面: 第一步:点击+号 第二步:选择第一个Library 第三步:添加这个包: 然后点击ok-->o ...
- 屠龙之路_战胜狮身人面怪物_SecondDay
第二天,少年们跋山涉水来到了恶龙山的山脚.前面有一座迷宫,守卫迷宫的是一只狮身人面的怪物,它出一个谜语让少年们猜,如果屠龙团猜不出答案就会被吃掉(如果你能猜出来,我就让你--),它问:"软件 ...
- [转]跟我一起学extjs5(02--建立工程项目)
原文地址:http://blog.csdn.net/jfok/article/details/35569057 目录(?)[+] 跟我一起学extjs5(02--建立工程项目) 我们先建立一个java ...
- 【BZOJ 4539】【HNOI 2016】树
http://www.lydsy.com/JudgeOnline/problem.php?id=4539 今天测试唯一会做的一道题. 按题目要求,如果暴力的把模板树往大树上仍,最后得到的大树是$O(n ...
- Elasticsearch 1.X 版本Java插件开发
接上一篇<Elasticsearch 2.X 版本Java插件开发简述> 开发1.X版本elasticsearch java插件与2.X版本有一些不同,同时在安装部署上也有些不同,主要区别 ...
- mac下搭建java开发环境:eclipse+tomcat+maven
一.安装eclipse 直接下载 二.安装JDK 下载mac版专用的jdk1.7,地址如下:http://jdk7.java.net/macportpreview/, 确认java使用的版本:开一个终 ...
- BZOJ 1110: [POI2007]砝码Odw
1110: [POI2007]砝码Odw Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 547 Solved: 296[Submit][Status ...
- 【BZOJ-4422】Cow Confinement 线段树 + 扫描线 + 差分 (优化DP)
4422: [Cerc2015]Cow Confinement Time Limit: 50 Sec Memory Limit: 512 MBSubmit: 61 Solved: 26[Submi ...
- Andirod——网络连接(HttpURLConnection)
Android中使用HTTP协议访问网络的方法主要分为两种: 使用HttpURLConnection 使用HttpClient 本文主要内容是HttpURLConnection的使用. HttpURL ...
- Unity 单例写法
借鉴自:http://www.cnblogs.com/CodeCabin/p/unity_global_manager.html 实现复杂一些的全局控制,如切换游戏关卡等操作,更常用的方式是使用单例类 ...