要了解iBATIS映射文件基础,首先我们来看,iBATIS的核心就在于映射文件(Data Map XML File)。在映射文件里可以定义包括要执行各种SQL语句,存储过程,输入参数映射,返回结果映射,缓存机制,并且能通过几种相对比较复杂的配置实现对象之间的关联关系和延迟加载。这也是iBATIS区别ORM框架的,具备更灵活性,更高性能的关键所在。
配置文件可以写得很简单,也可以很复杂。复杂配置文件也是出于更好的设计,更好性能,更好扩展性方面的目的。再复杂的配置文件也是有限的,一个映射文件包括:Mapped Statements、Parameter Maps、Result Maps、Cache Models几个主要的配置,还包括命名空间的配置,类型别名的配置。
iBATIS映射文件1.Mapped Statements :
顾名思义就是映射的语句声明。它是整个iBATIS配置核心的核心,真正将被执行的SQL语句(或存储过程)都是必须在这里被显式声明。在Mapped Statements里可以包含有:statement、select、insert、update、delete、procedure这6种不同的语句类型。从词面理解相信就可以了解到这些类型功能的一大半了。statement可以包含所有类型的SQL语句(存储过程),它是一个泛泛的语句配置,没特别明确的职责,相反,其它5种类型的语句配置就是专门负责各种不同的SQL语句。下面这张图列出了各种类型的语句的不同职责和调用方法。
Mapped Statements语句调用图
iBATIS映射文件2.Parameter Maps :
参数映射的配置,它是被用来向一个语句(statement)提供所需参数的配置。每一个Parameter Maps都有一个自己的ID,在需要的时候需要在statement 的 parameterMap属性中提供它的ID。但是对一个语句来说,它并不是必须,在iBATIS中还支持内联参数(Inline Parameter Maps)的形式,我们不需单独写一个Parameter Maps配置,只需要向parameterClass提供参数的类型,可以是元数据类型,复合数据类型,IDictionary数型的弱类型对象(使用key,value的键值对)。在内部访问数据类型的时候只使用#property#的形式访问对应的属性值。
注意:在任何地方使用到的parameterClass类型如果是一个元数据类型(int,string etc),都需要使用#value#的形式的来访问它的值。
iBATIS映射文件3.Result Maps :
返回结果的映射关系配置,就是列与属性的对应关系。在statement中使用resultMap属性来指定一个结果映射。对一个statement来说,resultMap也不是必须的,同样的,它仍然可以被resultClass给代替,因为如果返回出结果数据集的列名跟数据对象的属性相同的话,它会自动去匹配,但是它不保证所有列都被会被正确映射(当某列名在对象中找不对应的属性名,这列值将不被处理)。而resultMap则不同,如果已经在resultMap中定义将要使用到列或属性在结果集或数据对象中不存在,将会被认为是错误的,将会抛出异常。通过上面的表可以看到insert,update,delete三种语句类型是没有resultMap和resultClass,因为原则上来说,它们的操作是没有必要返回结果集。
注意:如果在一个statement中同时指定了resultMap和resultClass属性的话,那将会优先使用resultMap。同时result Map也是一个实现对象复杂查询功能的重要手段,如:result map的继承(与discriminator配合使用),对象的1..1、1..N关系查询。
iBATIS映射文件4.Cache Model :
缓存模型。使用在Cache Model中定义好的缓存机制,只需在查询语句配置的cacheModel属性就可以很容易地缓存查询返回的数据集。在iBATIS中提供了三种的类型的缓存模式(Memory,LRU,FIFO)算法。三种算法主要在于静态过期策略上的不同,而它们都有相同的动态过期依赖策略,即可以设置执行哪些statement时,缓存过期。
注意:iBATIS的缓存模型正常情况是非常好用的,但是因为缓存过期策略上的封装性,它在多个服务器,负载平衡场景下还是有它的局限性。
iBATIS映射文件基础就介绍到这里,希望通过这样的介绍,使你能够更好的了解到iBATIS映射文件的情况。
分享到:
相关推荐
iBATIS-SqlMaps,ibatis映射文件
ibatis映射文件信息,接口对应,持久层管理
ibatis配置文件、映射文件详解.doc
功能:当你建立好数据库,写好javabean,就可以用这个工具来...执行run.cmd,会在out中得到映射文件. <br>作为示例,你下载完成后,直接执行run.cmd就可以在out目录中看到输出的映射文件. <br>author: zhmtzhmt@tom.com
ibatis配置文件、映射文件详解,里面详细介绍了ibatis的配置文件以及映射文件的详细解释,通过这你能很好的了解ibatis配置文件以及映射文件的含义。。。
在网上下的eclipse abator插件自感觉不好用, 自已写了一个 基于oracle的,支持生成序列,pojo sqlmap.xml,dao daointerface,生成字段的注释 四个基本方法,增删改查, 写的时候基于oracle11的,低版本的可能在到得字段...
XDoclet实现基本原理是,通过在Java代码加入特定的JavaDoc tag,从而为其添加特定的附加语义,之后通过XDoclet工具对代码中JavaDoc Tag进行分析,自动生成与代码对应的配置文件,
ibatis 配置文件详解
ibatis SQL映射文件、DAO、model自动生成工具源码 1.没有注释,生成的代码非常简单,不像其他自动生成工具生成一大堆无用的东西 2.配置简单,只需配置表明,数据库连接,生成的路径即可
ibatis配置文件模板.包括(SqlMap.properties和SqlMapConfig.xml以及跟javabean的映射文件)
关于ibatis的配置和映射 这里的配置文件和映射文件是从网上收集的集合 适合初学的人
ibatis 一对多关系映射 ibatis 一对多关系映射ibatis 一对多关系映射
iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性
详细的ibatis配置文件,初来乍到,先打个招呼 ...
Ibatis一对一映射提示,需要学习的同学请关注,谢谢。
使用ibatis可以很好的操作数据库,对数据进行怎删改查,自动封装数据
myibatis 生成oracle 对应映射文件
此文本主要是关于ibatis总配置和映射配置和一些需要主要的细节。
struts1 + ibatis +MySQL做的上传下载文件,5分绝对超值,里面有分页,许多现成的js,
ibatis用xml配置文件配置的使用,基本包括了ibatis遇到的所有问题