所谓的命名sql其实也就是数据库里的sql语句,普元EOS里做了一定的封装,以方便在程序中的使用。
命名SQL的基本元素包括:
1. <parameterMap> parameterMap负责将对象属性映射成statement的参数。
2. <resultMap> resultMap负责将结果集的列值映射成对象的属性值
3. <statement>(Mapped Statement)元素是个通用声明,可以用于任何类型的sql语句,
但具体的statement类型(即<insert>、<update>、<delete>、<select>、<procedure>)
提供了更直观的XML DTD,因此强烈推荐使用。
下表总结了statement类型及其属性:
Statement类型
属性
<statement>
id、parameterClass、resultClass、parameterMap、resultMap
<insert>
id、parameterClass、parameterMap
<update>
id、parameterClass、parameterMap
<delete>
id、parameterClass、parameterMap
<select>
id、parameterClass、resultClass、parameterMap、resultMap
<procedure>
id、parameterClass、resultClass、parameterMap、resultMap
在实际的使用过程中通常都是忽略了<statement>,而直接使<insert>,<update>,<delete>,<select>,<procedure>
《一》对于各个statement的用法举例:
PS:
(1)如果在脚本或样式表中使用特殊字符(例如< 或&)或实体引用(例如< 或&),则需要将脚本或样式表的内容标记为CDATA(字符数
据)节,如果不使用CDATA的话就必须使用相应的实体来代替,例如<必须用<来替换
(2) 命名Sql中参数用##包起来,生成的是PreparedStatement,还可以使用$$把参数包起来,这样生成的是Statement,就是说在执行sql时
会先把参数放入到sql中,一般用在like或in操作中。对于in操作写命名Sql时,参数不能写成in(#field#)的方式,而应该写成
in ($filed$)的方式,原因是in操作不支持preparedStatement。
<updateid="saveExamineInfo"parameterClass="java.util.HashMap" >
<![CDATA[
UPDATE $mainTableName$ T SET T.MAIN_CHECK1 = '$mainCheck1$' ,T.MAIN_CHECK2 = '$mainCheck2$'
WHERE T.MAIN_ID = $mainId$
]]></update>
<deleteid="deleteTemplate"parameterClass="java.util.HashMap">
<![CDATA[
delete from IPTSM_TEMPLATEINFO where no = $no$
]]></delete>
<selectid="getTemplateInfo"parameterClass="java.util.Map" resultClass="commonj.sdo.DataObject" ">
<![CDATA[
SELECT NO,IDENTIFY,TITLE, FILENAME,TO_CHAR(MODIFYDATE,'yyyy-MM-dd HH24:mi:ss') MODIFYDATE
from IPTSM_TEMPLATEINFO where identify = '$identify$' AND TITLE LIKE '%$title$%' order by MODIFYDATE desc]]>
</select>
<procedure id="swapEmailAddresses" parameterMap="swapParameters">
{call swap_email_address (?, ?)}
</procedure>
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程
可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的
事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
《二》parameterMap
parameterMap负责将对象属性映射成statement的参数。
<parameterMap id="parameterMapName"class="commonj.sdo.DataObject">
<parameter property ="propertyName"
[jdbcType="VARCHAR"]属性javaType用于显式地指定被赋值参数的类型。如果没有提供类型将被假定为Object类型。
[javaType="string"]属性javaType用于显式地指定被赋值参数的类型。如果没有提供类型将被假定为Object类型。
[nullValue="NUMERIC"]属性nullValue的值可以是对于property类型来说任意的合法值,用于指定NULL的替换值。就是说,
当属性值等于指定值时,相应的字段将赋值NULL。这个特性允许在应用中给不支持null的数据类型
(即int,double,float等)赋值null。
/>
<parameter ...... />
<parameter ...... />
</parameterMap>
括号[]是可选的属性。一个parameterMap可包含任意多的parameter元素。后面讨论parameter的各个属性。
《三》resultMap
在命名SQL框架中,Result Map是极其重要的组件。在执行查询Mapped Statement时,resultMap负责将结果集的列值映射成对象的属性值。resultMap的结构如下:
<resultMap id="resultMapName"class="commonj.sdo.DataObject">
<result property="propertyName"column="COLUMN_NAME"[columnIndex="1"]
[javaType="int"] [jdbcType="NUMERIC"] [nullValue="-999999"] />
<result .../>
<result .../>
</resultMap>
括号[]中是可选的属性。resultMap的id属性是唯一标识。ResultMap的class属性用于指定DataObject的类型名称(包括URI)。resultMap可以包括任意多的属性映射,将查询结果集的列值映射成DataObject的属性。属性的映射按它们在resultMap中定义的顺序进行。
分享到:
相关推荐
在Eos命名Sql调用中,开发者可以利用各种方法来高效地执行SQL操作,避免重复工作和不规范的代码。以下是对PDF文档中提到的知识点的详细解释: 1. **HashMap作为参数** - `parameterClass="java.util.HashMap"`:在...
普元 命名sql 处理动态sql 用户场景: 对于同一个查询的命名sql,列或者表名都是动态的,如有些时候命名sql为select custID,custName from cust,有些时候是select custID from cust,这时候列名是变量。EOS中...
了解并掌握SQL Server的基本操作对于EOS的使用至关重要,包括创建和管理数据表、插入和修改数据以及执行查询。这些基础技能将帮助用户在EOS环境中有效地管理和操作数据,实现业务需求。通过学习和实践,可以进一步...
命名SQL是EOS7中一种灵活的SQL处理方式,它可以将SQL语句与代码分离,提升代码可读性和维护性。通过预定义的SQL命名模板,开发者可以避免在代码中硬编码SQL,减少错误并提高数据库操作的效率。在例子中,你可以看到...
Primeton EOS 是基于J2EE平台、采用面向构件技术实现企业级应用开发、运行、管理、监控、维护的中间件平台。这是应用软件层次上一个新的层次,一方面承接底层的J2EE技术,一方面以更业务化的形式面向最终应用。 EOS...
00 EOS文档使用指南.chm :00 EOS文档使用指南.chm EOS全部资料合集(包括例子) 01 EOS系统概述.chm :01 EOS系统概述.chm 02 EOS示例与教程.chm :02 EOS示例与教程.chm 03 EOS基础开发指南.chm :03 EOS基础开发...
后续章节逐步深入,包括EOS的程序设计、调试、部署,以及应用的配置和管理,如数据库配置、命名SQL、Handler配置和服务装配等。 数据库配置部分,教程详细介绍了如何在EOS6中配置和使用数据库,这通常是SOA应用中不...
根据提供的文件信息,本文将详细解析《EOS5.0 EOSV5.0 上海 普元 EOS5.0应用指南》中所涉及的关键知识点,主要包括PetStore示例的使用说明与tag应用示例的使用说明。 ### PetStore示例使用说明 #### 1.1 查看源...
- EOS6允许开发者通过命名SQL的方式定义SQL语句,这有助于代码的可读性和可维护性。 - 命名SQL可以通过XML配置文件或者注解的方式定义,方便管理复杂的查询逻辑。 **5.3 Handler配置** - Handler是EOS6中的一个重要...
**EOS - 普元企业服务总线** EOS(Enterprise Service Bus),由普元公司研发,是一款高效、灵活的企业服务总线系统。它在SOA(Service-Oriented Architecture,面向服务架构)环境中扮演着核心角色,为企业提供了...
* EOS 的数据库配置和命名 SQL * EOS 的 Handler 配置和日志查看 * EOS 的多应用部署 * EOS 的 Web Service 开发与调用 * EOS 的 SOA 应用构建 * EOS 的源代码运行 学习思路: 本教程适合初学者和开发者,旨在帮助...
2. SQL查询和数据建模:EOS支持SQL查询语言,用于从数据源中筛选、聚合和转换数据。开发者需要熟练编写SQL语句,理解如何根据业务需求进行数据建模。 3. 报表设计:报表的布局和格式至关重要,EOS提供了丰富的设计...
**EOS(Ethernet Over SDH)业务** EOS,即以太网在SDH(Synchronous Digital Hierarchy,同步数字体系)上的承载,是一种将以太网数据流映射到SDH通道的技术,它允许以太网业务在SDH网络中高效、透明地传输。这种...
命名SQL是指在EOS中使用自定义的SQL语句进行数据操作,这允许开发者根据业务需求灵活地处理数据。这部分内容可能会讲解如何编写和执行这些SQL语句,以及如何处理可能出现的错误和异常。 通过以上各个章节的学习,...
接下来的章节则深入讲解了EOS的开发工具和方法,包括快速开发技巧、数据库配置、命名SQL、Handler配置以及日志查看等功能,这些都是在EOS环境中进行有效开发和调试的关键。 在SOA应用开发部分,教程介绍了如何使用...
开发目录编排与命名部分介绍了EOS应用系统的目录结构和命名规则,帮助读者更好地理解和使用EOS应用系统。 4.2.1 文档目录 文档目录部分介绍了EOS应用系统的文档目录结构和命名规则,帮助读者更好地理解和使用EOS...
- 介绍如何在EOS6中配置命名SQL,包括SQL语句的编写和使用方式。 **5.3 Handler配置** - **Handler作用:** - Handler是EOS6中的关键组件之一,用于处理特定的业务逻辑或请求。 - **Handler配置:** - 介绍如何...
### 普元EOS Platform 7.5 开发手册知识点概览 #### 一、NUIDemo使用与实践 **1.1 执行SQL脚本** - **知识点概述:** - 在开始学习NUI控件之前,首先需要了解如何执行SQL脚本,这是进行后续开发的基础。 - SQL...