1 parameterType

如果参数只有一个,比如一个id,即int类型的id,那么parameterType直接是int。

如果参数有多个,那么就用表中一行对应的类,默认是类的名字和表中列的名字相同的话,就进行赋值。

2 resultMap

用于告诉mabatis如何把select结果中取出的数据转换成开发者需要的对象。

由于是转换成开发者需要的对象,因此应该和SqlSession类的方法一起来看。

T selectOne(String statement);

这个时候就返回一个T类型的对象,这个对象是由resultMap里面的逻辑将数据库的查询结果转换而成的。

如果是

List<E> selectList(String statement);

这个时候返回的是一个E类型对象的列表,该列表中的每个对象是由resultMap里面的逻辑将数据库的查询结果转换而成的。

2.1 <result>标签

property指的是返回的对象的属性名,而column是查询结果的列名。result标签将它们对应起来,从而完成将数据库查询结果到开发者需要的对象的转换。

2.2 一对一的关系用association、一对多的关系用collection

它们是用来描述对象之间的引用关系的。

2.3 type属性

表示该resultMap返回的对象的类型。

2.4 <id> 标签和<result>标签的区别

它们都是类的属性到列的映射,但是id表示的是主键。

3 一对一关系的resultMap

一般情况下,一个对象里面会引用另外一个对象,这种情况就是一对一关系。

一个resultMap映射的只是一个对象,因此要在该对象中引用另外一个对象就需要用到另外一个resultMap,并且需要调用select来返回这个对象。

这个时候就用到了association标签了。它依然建立的是类的属性到查询到的数据之间的映射,但是这里查询到的数据用到了另外一个select的结果。

3.1 assotiation的property属性

该assotiation所在的resultMap返回的对象的属性。

3.2 assotiation的column属性

resultMap对象的表的列属性。用来向select传递参数。

3.3 assotiation的javaType属性

property属性的类型。

3.4 select

用来返回关联对象的select查询。

4 一对多关系的resultMap

如果一个对象里面引用到另外一个对象的集合,这种情况就是一对多关系。同样,也需要用到另外一个resultMap,并且也需要调用select来返回这个对象集合。这个时候要用到collection标签。

4.1 collection的property属性

该collection所在的resultMap返回的对象的属性。

4.2 collection的column属性

resultMap对象的表中的列的属性。用来给select传参。

4.3 collection的javaType属性

property属性的类。

4.4 collection的ofType属性

collection中单个元素的类型。

4.5 select

用于返回关联对象的select查询。

5 resultMap和resultType

用resultType的时候mybatis自动生成相应的resultMap,所使用的类型是java Bean,并且其属性名要和对应的数据库表中的列名相同。resultMap的话,就都是自己定义的,没有这些限制。也就是说,简单的对象类型可以用resultType,因为方便,但是复杂的返回类型就要用resultMap了。

mybatis xml文件解析的更多相关文章

  1. 通过正则表达式实现简单xml文件解析

    这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...

  2. 八、Android学习第七天——XML文件解析方法(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...

  3. android基础知识13:AndroidManifest.xml文件解析

    注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  4. Android之AndroidManifest.xml文件解析

    转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...

  5. 9.XML文件解析

    一.XML简介 XML(EXtensible Markup Language),可扩展标记语言 特点:XML与操作系统.编程语言的开发平台无关 实现不同系统之间的数据交换 作用:数据交互 配置应用程序 ...

  6. Python实现XML文件解析

    1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...

  7. Python3将xml文件解析为Python对象

    一.说明 从最开始写javascript开始,我就很烦感使用getElementById()等函数来获取节点的方法,获取了一个节点要访问其子孙节点要么child半天要么就再来一个getElementB ...

  8. XML文件解析-DOM4J方式和SAX方式

    最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...

  9. java基础之概谈xml文件解析

    XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...

随机推荐

  1. HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!

    A Bug's Life                                                     Find them, Catch them 都是并查集构造的题,不久前 ...

  2. 洛谷P1447 - [NOI2010]能量采集

    Portal Description 给出\(n,m(n,m\leq10^5),\)计算\[ \sum_{i=1}^n \sum_{j=1}^m (2gcd(i,j)-1)\] Solution 简单 ...

  3. P1122 最大子树和 (树形DP)

    题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明 ...

  4. Chapter 4-5

    1.切片对象  sequence[起始索引:结束索引:步进值] 对象身份的比较 is /is not 2.eval()参数是一个字符串, 可以把这个字符串当成表达式来求值. >>>x ...

  5. DP的序--Codeforces956E. Wardrobe

    $n \leq 10000$个盒子,有高度,高度总和$\leq 10000$,盒子有重要的和不重要的,问最多有多少重要盒子的底端在区间$[L,R]$. 这是个入门级的DP,但需要一点胆量MD这题能放D ...

  6. Mysql安装及自动化部署脚本方案

    一.简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文件中,但是 ...

  7. druid 的应用(密码加密),logback的应用

    参考博客:https://github.com/yjmyzz/spring-mybatis-multidatasourcehttp://www.cnblogs.com/dream-to-pku/p/6 ...

  8. CODEVS_1227 方格取数2 网络流 最小费用流 拆点

    原题链接:http://codevs.cn/problem/1227/ 题目描述 Description 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1, ...

  9. 某考试 T2 sum

    为什么其他人都是插值套插值啊,,,,就我是XJB做的吗2333 k次多项式的前缀和可以表示成k+1次多项式,用两次这个玩意就可以发现g可以表示成一个k+2次多项式. 然后我的做法是把g用拉格朗日插值+ ...

  10. Linux下多线程编程-信号量

    今天来谈谈线程的同步--信号量. 首先来看看一些概念性的东西: 如进程.线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行:B依言执行,再将结果给 ...