好文档 - 专业文书写作范文服务资料分享网站

IBatis教程 

天下 分享 时间: 加入收藏 我要投稿 点赞

此例中,中定义的项来映射SQL语句中的“?”,中定义的内容则把结果集的列映射到对象的属性上。定义表示在高速缓存中保存最后的1000个执行结果24小时。

一个数据映射定义文件中可以包含多个CacheModels,TypeAliases,ResultMaps,ParameterMaps,Statements(Procedure)。因为所有项都被加载到同一个配置中,所以可以在一个数据映射中定义映射项,在另一个数据映射中使用这个项。

7.2数据操作指令映射(MappedStatements)

映射指令可以包含任何的数据操作指令,使用参数映射和结果映射指令的输入和输出。存储过程是一种特殊的操作指令。下面给出操作指令映射元素的语法:

[parameterMap=\[parameterClass=\[resultMap=\[resultClass=\[listClass=\[cacheModel=\[extends=\>

select*fromProductswhereProduct_Id=[?|#propertyName#]orderby[$simpleDynamic$]

7.2.1数据操作指令类型(StatementTypes)

可以这么说,元素包含了数据操作指令的所有类型。下表给出了指令类型及各自所支持的属性特征。StatementElementAttributesidparameterClassresultClasslistClassparameterMapresultMapcacheModelidparameterClassparameterMapidparameterClassparameterMapextendsidparameterClassparameterMapChildElementsAlldynamicelementsMethodsInsertUpdateDeleteAllquerymethodsAlldynamicelementsAlldynamicelementsAlldynamicelementsInsertUpdateDeleteInsertUpdateDeleteInsertUpdateDelete

现在则实用元素来消除这种重复性代码。元素声明会被多次使用的内容,元素是对需要应用的sql片段的引用。如下所示:

如果有参数,也可以被重复使用,样本如下:

WHEREparentid=#value#

在许多情况下,也可以使用扩展属性来达到同样的目的。

7.2.3.2XML转义字符

举个例子,“<”是在XML文件必须用转义字符代替的符号,那么如何在Mapper中编制带有这类符号的SQL呢?可以用XML语法的CDATA元素来对此进行规避。如下:

SELECT*FROMPERSONWHEREAGE>#value#]]>

7.3.3自动产生主键:

许多数据库支持自动产生主键值(如自增列),在Oracle,SQLServer,MySQL中都提供这种支持。无论在那种环境下,都可以在中通过设置元素来获取这种主键值。

SELECTSTOCKIDSEQUENCE.NEXTVALASVALUEFROMDUAL

insertintoPRODUCT(PRD_ID,PRD_DESCRIPTION)values(#id#,#description#)

select@@IDENTITYasvalue

selectLAST_INSERT_ID()asvalue

7.2.4元素

在应用程序需要的任何地方都可以通过iBATIS来执行任意合法的SQL。对于一些很简单的SQL,可以不必预先设计SQL内容,元素用于自动产生以元素为基准的SQL语句,它可以支持四种操作语句的自动生成——insert,select,update,delete。下面的例子展示了如何设置自动产生SQL。

parameterMap=\select-generate-params\

parameterMap=\select-generate-params\

注:在DataMappe实例被创建的时候,SQL语句就会生成,因此在执行的时候没有任何外在影响。

的目的是简化开发人员对于简单编码的编制工作量,这并表示本框架是OR/M模式。有很多ORMapping工具提供这种功能,但是,这里不是对ORMapping的替代。对于复杂的SQL,请开发人员用适当的SQL语句替换元素。

7.2.4.1的属性:

属性tableby

说明

SQL语句中的数据表名Where条件中使用的列名

是否必须是否

7.2.5指令类型相关的元素属性

六种指令类型元素有着不同的属性。

7.2.5.1id

这个属性是必须的,它是SQL指令的名字,在元素中它必须是唯一的。

7.2.5.2parameterMap

在带有参数的标准SQL中,参数映射定义了各个值与“?”或参数的前后对应顺序表。如下所示:

1ob9s1oo6h6et871e27e
领取福利

微信扫码领取福利

微信扫码分享