1.<setting>元素
<setting>元素用于配置和优化SqlMapClient实例的各选项。<setting>元素本身及其所有的属性都是可选的。下表列出了<setting>元素支持的属性及其功能:
<1>maxRequests:同时执行SQL语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是maxTransactions(参见以下)的10倍,并且总是大于maxSessions和maxTranactions。减小这个参数值通常能提高性能。例如:maxRequests=“256”缺省值:512
<2>maxSessions:同一时间内活动的最大session数.
2.<typeAlias>元素
<typeAlias>元素让您为一个通常较长的、全限定类名指定一个较短的别名。例如:
<typeAlias alias="shortname" type="com.long.class.path.Class"/>
3.<transationManager>元素让您为SQL Map配置事务管理服务。属性type指定所使用的事务管理器类型。这个属性值可以是一个类名,也可以是一个别名。包含在框架的三个事务管理器分别是:JDBC,JTA和EXTERNAL。
4.<datasource>元素
<datasource>是<transactionManager>的一部分,为SQL Map数据源设置了一系列参数。目前SQL Map架构只提供三个DataSource Factory,但您也可以添加自己的实现。下面详细地讨论DataSourceFactory的三个实现及其例子。
5.<sqlMap>元素用于包括SQL Map映射文件和其他的SQL Map配置文件。每个SqlMapClient对象使用的所有SQL Map映射文件都要在此声明。映射文件作为stream resource从类路径或URL读入。
5.<resultMap>
resultMap是最常用和最重要的属性。ResultMap属性的值等于预先定义的resultMap元素的name属性值(参照下面的例子)。使用resultMap可以控制数据如何从结果集中取出,以及哪一个属性匹配哪一个字段。不象使用resultClass的自动映射方法,resultMap属性可以允许指定字段的数据类型,NULL的替代值复杂类型映射(包括其他Java Bean,集合类型和基本类型包装类)。
关于resultMap的详细讨论放在以后的章节,这里只给出一个相关statement的resultMap的例子。
<resultMap id=”get-product-result” class=”com.ibatis.example.Product”>
<result property=”id” column=”PRD_ID”/>
<result property=”description” column=”PRD_DESCRIPTION”/>
</resultMap>
<statement id=”getProduct” resultMap=”get-product-result”>
select * from PRODUCT
</statement>
上面的例子中,通过resultMap的定义,查询语句得到的ResultSet被映射成Product对象。resultMap定义的“id”属性值将赋予“PRO_ID”字段值,而“description”属性值将赋予“PRD_DESCRIPTION”字段值。注意resultMap支持“select *”,并不要求定义ResultSet所有返回字段的映射。
在SQL Map框架中,Result Map是极其重要的组件。在执行查询Mapped Statement时,resultMap负责将结果集的列值映射成Java Bean的属性值。resultMap的结构如下:
<resultMap id=”resultMapName” class=”some.domain.Class” [extends=”parent-resultMap”]>
<result property=”propertyName” column=”COLUMN_NAME”
[columnIndex=”1”] [javaType=”int”] [jdbcType=”NUMERIC”]
[nullValue=”-999999”] [select=”someOtherStatement”]
/>
<result ……/>
<result ……/>
<result ……/>
</resultMap>
括号[]中是可选的属性。resultMap的id属性是statement的唯一标识。ResultMap的class属性用于指定Java类的全限定名(即包括包的名称)。该Java类初始化并根据定义填充数据。extends是可选的属性,可设定成另外一个resultMap的名字,并以它为基础。和在Java中继承一个类相似,父resultMap的属性将作为子resutlMap的一部分。父resultMap的属性总是加到子resultMap属性的前面,并且父resultMap必须要在子resultMap之前定义。父resultMap和子resultMap的class属性不一定要一致,它们可以没有任何关系。resultMap可以包括任意多的属性映射,将查询结果集的列值映射成Java Bean的属性。属性的映射按它们在resultMap中定义的顺序进行。相关的Java Bean类必须符合Java Bean规范,每一属性都必须拥有get/set方法。
注意!ResultSet的列值按它们在resultMap中定义的顺序读取(这特性会在某些实现得不是很好的JDBC Driver中派上用场)。
下面几个小节讨论resultMap的result元素各个属性:
分享到:
相关推荐
"教程"标签则暗示了这些代码不仅可供参考,还可能带有详细的注释和解释,便于自学和教学。"代码"标签则明确指出这是编程实现,而非理论文档。 压缩包内的"实验示例"文件名表明,这些代码可能来源于实验室环境,是...
【标题】"实例代码.Rar" 是一个包含ASP.NET网站设计实例源代码的压缩文件,提供了实际操作中的应用示例,对于学习和理解ASP.NET技术非常有帮助。 【描述】"ASP.NET 网站设计实例通 实例代码.Rar" 提示这个压缩包...
压缩包中的"C#网络编程_PPT"可能是一个包含教程讲解的PowerPoint演示文稿,其中可能包含了详细的概念解释、步骤说明以及代码示例的分析。通过PPT,你可以系统地学习网络编程的各个方面,从基础知识到高级技术,如套...
【标题】:“部分标签文档实例解释说明” 这篇文档主要针对的是如何理解和运用“部分标签”这一概念,这在编程和网站开发中是非常重要的一个部分。部分标签,通常指的是在网页模板或者应用程序中,用于组合和复用...
标题 "C#分词程序源代码实例" 涉及的核心知识点主要集中在C#编程语言、文本处理和分词算法上。C#是Microsoft开发的一种面向对象的编程语言,广泛应用于Windows平台上的软件开发,包括桌面应用、Web应用以及游戏开发...
1. **程序使用说明.doc**:这通常是一个文档,详细解释了如何使用这些实例代码,包括可能的输入、预期的输出以及执行步骤。阅读这个文档将帮助用户更好地理解每个示例的目的和操作方式。 2. **Desktop_.ini**:这是...
【标签】:“网盘地址”标签提示我们,这些小游戏实例代码是通过网络云存储服务进行分发的,可能是为了方便用户快速下载和分享。通常,这样的资源可能会包含多个文件夹,分别对应不同游戏项目,每个项目下会有相关的...
【标题】"源代码-生成柱状图实例代码.zip" 提供的是一个使用ASP(Active Server Pages)技术生成柱状图的源代码示例。在ASP中,我们通常利用服务器端脚本语言如VBScript或JScript来动态生成网页内容。在本案例中,这...
以下是这九个内置对象的详细说明,以及如何在实际开发中使用它们: 1. **pageContext对象**: - `PageContext`对象提供对整个JSP页面的访问,可以获取其他所有内置对象的引用,也可以用来存储页面级的数据。 - ...
### PHPCMS标签的详细说明 #### 中文标签 PHPCMS系统为了简化模板的制作流程及提升用户体验,引入了中文标签的概念。这种标签模式相较于早期版本中的长标签调用方式更加直观易懂,降低了非专业技术人员制作模板的...
标题中的“下载进度条实例+代码+说明”指的是一个实现下载功能并带有进度显示的程序示例,通常在开发过程中,这种组件用于提供用户友好的界面,让用户了解文件下载的状态。这种实例对于开发者来说非常有价值,因为它...
此外,它还提到包含了开发文档,这意味着除了源代码外,还有详细的步骤说明、功能解释以及可能的调试和优化指南,帮助学习者理解和实现这些代码。 【标签】"计算机网络"表明这些代码涉及到网络通信,即如何通过HTTP...
标题中的“JAVA编程经典实例100个[源代码]”指的是这是一份包含100个Java编程的经典示例的资源包,其中包含了源代码,可以帮助学习者深入理解和掌握Java编程语言的各种核心概念和应用。 描述部分提到,每个实例目录...
"源代码"标签表明这个压缩包包含了实现这些功能的实际代码。在www.maoyeah.com.txt、maoyeah和maoyeah_com这三个文件中,可能包含了关于如何使用这些对话框实例的说明、示例代码或者可能是实际的源码文件。`...
标题中的"COM编程精彩实例 代码"意味着这个压缩包包含了使用COM技术的多个实例代码,这些实例可能是解决特定问题或展示特定功能的。通过分析和学习这些实例,开发者可以深入理解COM组件的创建、注册、调用以及它们...
标题中的"PHP导入和导出CSV EXCEL实例代码"指的是使用PHP编写程序,实现对CSV(逗号分隔值)和Excel文件的数据处理。CSV格式是一种简单且通用的数据交换格式,而Excel文件(通常是.xlsx或.xls格式)通常用于更复杂的...
本教程将深入探讨XHTML布局实例,通过具体的代码示例来帮助Java学习者更好地理解网页设计的基础。 XHTML布局的核心在于对元素的精确控制,它强调语义化标签的使用,这有助于搜索引擎优化和无障碍访问。例如,`<div>...
“程序代码”明确了这是关于编程实现的,而“滤波”则说明了代码的核心功能是对信号进行滤波处理,可能包括低通、高通、带通或带阻滤波。 从“压缩包子文件的文件名称列表”来看,只有一个文件名为"FIR",这可能是...
QT4 GUI(图形用户界面)实例代码是一套用于学习和实践C++ GUI编程的资源,特别适合初学者。QT4是Qt库的一个版本,它是一个跨平台的应用程序开发框架,支持Windows、Linux、Mac OS X等多种操作系统。通过QT4,开发者...
【标签】"top2812 官方 实例 源代码"进一步巩固了我们的理解,即这个资源主要围绕"top2812"进行,包含了官方支持的实例和源代码,适合开发者进行学习和调试。 【压缩包子文件的文件名称列表】:TOP2812_CODE可能...