mybatis xml文件解析
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文件解析的更多相关文章
- 通过正则表达式实现简单xml文件解析
这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
- android基础知识13:AndroidManifest.xml文件解析
注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...
- Android之AndroidManifest.xml文件解析
转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...
- 9.XML文件解析
一.XML简介 XML(EXtensible Markup Language),可扩展标记语言 特点:XML与操作系统.编程语言的开发平台无关 实现不同系统之间的数据交换 作用:数据交互 配置应用程序 ...
- Python实现XML文件解析
1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...
- Python3将xml文件解析为Python对象
一.说明 从最开始写javascript开始,我就很烦感使用getElementById()等函数来获取节点的方法,获取了一个节点要访问其子孙节点要么child半天要么就再来一个getElementB ...
- XML文件解析-DOM4J方式和SAX方式
最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...
- java基础之概谈xml文件解析
XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...
随机推荐
- 【Go】错误处理
· error类型是一个接口类型,也是一个Go语言的内建类型.在这个接口类型的声明中只包含了一个方法Error.这个方法不接受任何参数,但是会返回一个string类型的结果.它的作用是返回错误信息的字 ...
- 九度oj 题目1491:求1和2的个数
题目描述: 给定正整数N,函数F(N)表示小于等于N的自然数中1和2的个数之和,例如:1,2,3,4,5,6,7,8,9,10序列中1和2的个数之和为3,因此F(10)=3.输入N,求F(N)的值,1 ...
- Mahout0.9安装与配置(完全分布式模式下运行)
安装Mahout之前,一定要把hadoop装好,hadoop的安装方法可以参考我的前一篇随笔,我安装的是hadoop2.7.0,具体方法在此不做介绍. 1.首先下载相应版本的Mahout: axel ...
- 【CCF】行车路线 改编Dijkstra
[AC] #include<iostream> #include<cstdio> #include<string> #include<cstring> ...
- 高一python笔记大全(过会考)
最初のプログラム xfは.どちらかの試合(しあい)活動(かつどう)に参加して.a秒(aは整数)を使ったのですが.今あなたがひとつ任務を有:分と秒数を出力するください. a=int(input(&quo ...
- NAND FLASH 物理结构分析
转自:http://blog.51cto.com/hardywang/2053915 NAND Flash是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁 ...
- day1之校花网小试牛刀
一 利用生成器来完成爬去校花网视频 import requests import re import os import hashlib import time DOWLOAD_PATH=r'D:\D ...
- Scrapy学习-9-FromRequest
用FromRequest模拟登陆知乎网站 实例 默认登陆成功以后的请求都会带上cookie # -*- coding: utf-8 -*- import re import json import d ...
- StringBuffer笔记
简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 Strin ...
- Hibrenate load 和 get
这次我们来谈一下Hibernate3.2 Session加载数据时get和load方法的区别(Hibernate 3以后的版本就用get()方法取代find()这个方法了),其实这个在网上有很多的论述 ...