`

iBATIS映射文件基础浅谈

阅读更多

要了解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的语句调用 

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映射文件的情况。

 来自:http://developer.51cto.com/art/200907/138493.htm
分享到:
评论

相关推荐

    ibatis映射文件信息,接口对应

    标题和描述中提到的“ibatis映射文件信息,接口对应”是指Ibatis如何通过映射文件与Java接口进行关联,实现数据操作的封装和调用。 首先,我们需要了解Ibatis的核心组成部分:SqlMapConfig.xml配置文件、Mapper接口...

    iBATIS-SqlMaps,ibatis映射文件

    iBATIS的核心概念是SqlMapConfig.xml配置文件和一系列的SqlMap.xml映射文件,这两个文件是理解iBATIS工作原理的关键。 SqlMapConfig.xml是整个iBATIS框架的全局配置文件,它包含了数据源、事务管理器等核心组件的...

    ibatis配置文件、映射文件详解

    ### ibatis配置文件、映射文件详解 #### 1. SQL Map Config 文件详解 在ibatis框架中,`sqlMapConfig.xml`是一个非常重要的配置文件,它主要用于设置ibatis的全局配置信息,包括数据库连接信息、环境配置以及其它...

    Ibatis 映射文件自动生成器

    功能:当你建立好数据库,写好javabean,就可以用这个工具来...执行run.cmd,会在out中得到映射文件. <br>作为示例,你下载完成后,直接执行run.cmd就可以在out目录中看到输出的映射文件. <br>author: zhmtzhmt@tom.com

    pojo+xDoclet生成ibatis映射文件

    ### POJO + XDoclet 生成 iBatis 映射文件详解 #### XDoclet 基本原理 XDoclet 是一个强大的源代码注释处理工具,它通过解析 Java 源代码中的 Javadoc 注释标签来生成各种类型的文档或配置文件。这种机制使得...

    一个基于oralce java 的ibatis 映射文件生成工具

    在网上下的eclipse abator插件自感觉不好用, 自已写了一个 基于oracle的,支持生成序列,pojo sqlmap.xml,dao daointerface,生成字段的注释 四个基本方法,增删改查, 写的时候基于oracle11的,低版本的可能在到得字段...

    ibatis 配置文件详解

    通过上述解析,我们可以看出ibatis配置文件在ibatis框架中的核心地位,它不仅定义了数据源和事务管理策略,还指定了SQL映射文件的位置,使得ibatis能够根据配置正确地执行SQL语句,完成数据库操作。

    \ibatis配置文件、映射文件详解

    本文将深入探讨iBATIS的核心配置文件——`sqlMapConfig.xml`,以及映射文件的详细内容。 `sqlMapConfig.xml`是iBATIS的全局配置文件,它包含了所有iBATIS运行时的设置,如数据源、事务管理器、缓存配置等。让我们...

    ibatis SQL映射文件、DAO、model自动生成工具源码

    Ibatis 是一款轻量级的Java持久层框架,它提供了SQL映射文件和基于XML或注解的SQL语句配置,使得开发者可以更加灵活地控制SQL的编写,从而避免了传统的JDBC代码中的大量模板式代码。这个"ibatis SQL映射文件、DAO、...

    ibatis 的关系映射

    iBATIS通过配置XML映射文件或注解来定义这种映射关系。映射文件通常包含SQL语句和结果映射,其中结果映射定义了数据库查询结果如何转换为Java对象。 例如,在一对多关系中,一个实体(如用户)可以有多个关联的实体...

    ibatis配置文件模板

    总结起来,Ibatis配置文件模板是构建Ibatis项目的基础,`SqlMap.properties`提供数据库连接信息,`SqlMapConfig.xml`负责全局配置,而JavaBean的映射文件则定义了数据库操作与Java对象的对应关系。理解并熟练掌握...

    ibatis配置文件信息

    `SqlMapConfig.xml` 是ibatis的核心配置文件,用于配置全局环境、事务管理器、数据源以及SQL映射文件等。 ```xml ${driver}"/> ${url}"/> ${username}"/> ${password}"/> ``` - **properties**...

    ibatis配置文件

    ibatis配置文件是框架运行的基础,通过上述设置,可以精细地控制ibatis的行为,实现高效的数据访问。理解这些配置选项对于充分利用ibatis的强大功能至关重要。在实际应用中,根据项目需求调整这些参数,可以显著提升...

    ibatis配置、映射文件详解.doc

    总结来说,iBatis的配置文件`sqlMapConfig.xml`是整个系统的基础,它定义了系统的行为模式和数据源。而映射文件则提供了数据库操作的具体实现,两者共同构成了iBatis的核心。对于初学者来说,理解和掌握这两个文件的...

    ibatis 一对多 多对多完整映射

    在`ibatis`的映射文件中,你可以定义一个`resultMap`来表示父对象,然后通过`collection`元素来声明一对多的关系。`collection`元素的` ofType`属性指定子对象的类型,`property`属性则对应父对象中的集合属性名。 ...

    ibatis配置文件自动加载组件

    标题 "ibatis配置文件自动加载组件" 涉及的核心技术是MyBatis的自动配置加载功能,这在开发过程中极大地提高了效率,使得开发者无需每次修改XML映射文件后手动重启服务。MyBatis是一个优秀的Java持久层框架,它简化...

    webwork+ibatis上传文件简单实例

    对于iBatis的配置文件`SqlMapConfig.xml`,你需要定义一个用于插入文件信息的SQL映射语句,例如: ```xml INSERT INTO files (file_name, content_type, file_path) VALUES (#{fileName}, #{contentType}, #{...

    Ibatis一对一映射提示

    在iBATIS中,这种关系可以通过配置XML映射文件或者注解来实现。 **一对一映射的基本概念:** 一对一映射是iBATIS中处理关联关系的一种方式,它允许你在查询一个实体对象时,同时获取与其关联的另一个实体对象。这种...

    ibatis 一对多关系映射

    在Ibatis中,这种关系可以通过配置XML映射文件或使用注解来实现。 首先,我们需要在映射文件中定义主表(一对一端)和从表(多对一端)的映射。假设我们有一个`User`类对应`users`表,一个`Order`类对应`orders`表...

Global site tag (gtag.js) - Google Analytics