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 ...
随机推荐
- php 实现接收客户端上传的图片
今天,遇到一个服务端接收客户端上传图片的需求,经过学习.我写了个简单的demo 以备下次学习. 首先服务器接收的发送图片的请求一定要是post请求,而且请求一定要加上 enctype="mu ...
- ViewHolder数据错乱BUG
需求是这样的,在列表中用一个图标标示某个item是已经被接下或者完成的任务. 对于文件有这样的操作,进入列表后第一页面展示正常,但是加载更多后同样位置出现了同样的标志.这不是我想要的效果 我的解决办法 ...
- less 学习 (计划终于执行了啊,不再拖延了)
1.less是什么? 答:将CSS赋予动态语言的特性, 变量,继承,运算,函数. (less就是一个用js实现的CSS解析器,运行要依赖js引擎). 2.运行原理: 按照指定语法规则写好less文 ...
- webkit webApp 开发技术要点总结
如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢?幸好,webkit内核的浏览器能帮助我们完成这一切.接触 webkit webApp的开发已经有一段时间了,现把一些技巧分享给大家 ...
- Android 用代码设置Shape,corners,Gradient
网上查找资料 记录学习 int strokeWidth = 5; // 3dp 边框宽度 int roundRadius = 15; // 8dp 圆角半径 int strokeColor = Col ...
- iOS开发小技巧--iOS8之后的cell自动计算高度
cell高度自动计算步骤:
- 【POJ 3294】Life Forms 不小于k个字符串中的最长子串
一下午和一晚上都在刚这道题,各种错误都集齐了so sad 我的时间啊!!! 后缀数组就先做到这里吧,是在伤不起啊QAQ 出现了各种奇怪的错误,看了标算,然后乱改自己的代码,莫名其妙的改A了,后来发现用 ...
- javascript中数组去重的4种方法
面试前端必须准备的一道问题:怎样去掉Javascript的Array的重复项.在最近面试中,百度.腾讯.盛大等都在面试里出过这个题目.这个问题看起来简单,但其实暗藏杀机. 考的不仅仅是实现这个功能,更 ...
- ASP.NET MVC 4 异步加载控制器
ASP.NET 4 Developer preview中的异步操纵器 在放弃了对.NET 3的支持之后, ASP.NET MVC 4 彻底拥抱了Task类库, 你不需求再蛋疼的给每个Action写两个 ...
- 【USACO 1.4】Mother's Milk
/* TASK: milk3 LANG: C++ SOLVE: 倒水,dfs,枚举每一种倒法,ca[i][j]记录a和c桶的状态,因为总体积不变,故b的状态不需要记录. */ #include< ...