`
flownclouds
  • 浏览: 26994 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

EOS命名SQL传参

 
阅读更多
所谓的命名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的话就必须使用相应的实体来代替,例如<必须用&lt;来替换

(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调用总结定义.pdf

    Eos命名Sql调用总结定义.pdf

    普元 命名sql 处理动态sql

    普元 命名sql 处理动态sql 用户场景: 对于同一个查询的命名sql,列或者表名都是动态的,如有些时候命名sql为select custID,custName from cust,有些时候是select custID from cust,这时候列名是变量。EOS中...

    EOS入门必备之SQL_Server篇.doc

    EOS入门必备之SQL_Server篇.doc

    EOS6程序员教程配套案例源代码及SQL

    Primeton EOS 是基于J2EE平台、采用面向构件技术实现企业级应用开发、运行、管理、监控、维护的中间件平台。这是应用软件层次上一个新的层次,一方面承接底层的J2EE技术,一方面以更业务化的形式面向最终应用。 EOS...

    15 EOS6.0三个例子包含SQL.rar

    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文档-EOS集成SVN

    EOS集成SVN-EOS开发技术, 在EOS中集成 SVN 系统

    CANON Digital EOS SDK v2.13.2

    (This document is common for All Cameras, EOS 5D Mark III, EOS 5D Mark II, EOS 6D, EOS 7D, EOS 60D, EOS 50D, EOS 40D, EOS-1Ds Mark III, EOS-1D Mark III, EOS-1D Mark IV, EOS M, EOS 1100D, EOS 1000D, ...

    EOS OSLab操作系统

    EOS 是一个可以在 Intel X86 平台上运行的、面向教学的开源操作系统。为了让 EOS 适合于教学,EOS 被设计的十分小巧,并且尽量保持架构简单。但是,EOS 仍然涵盖了系统引导、进程管理、内存管理、IO 管理、文件系统...

    EOS Report开发指南

    EOS Report开发指南: 01 EOS Report概述 01.01 EOS Report简介 01.02 EOS Report总体结构 01.03 EOS Report功能特性 02 EOS Report入门 02.01 EOS Report基础知识 02.02 EOS Report业务概念 02.03 报表入门...

    上海普元EOS6工作流教程

    您需要了解HTML、Javascript、Java、JSP、JspTag、SQL等J2EE的基本知识,并且对《EOS基础教程》有一定的理解,这将为您能更好的学习本文档起到事半功倍的效果。 本文档讲通过几个案例来引导读者运用primeton EOS ...

    09 EOS Report管理员手册.chm

    00 EOS文档使用指南.chm :00 EOS文档使用指南.chm EOS全部资料合集(包括例子) 01 EOS系统概述.chm :01 EOS系统概述.chm 02 EOS示例与教程.chm :02 EOS示例与教程.chm 03 EOS基础开发指南.chm :03 EOS基础开发...

    EOS5.0 EOSV5.0 上海 普元 EOS5.0应用指南

    EOSV5.0 上海 普元 EOS5.0应用指南 EOSV5.0 上海 普元 EOS5.0应用指南 EOSV5.0 上海 普元 EOS5.0应用指南 EOSV5.0 上海 普元 EOS5.0应用指南

    EOS错误代码集

    本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看http://cw.hubwiz.com/card/c/eos-error-code/

    EOS示例与教程.chm

    02.05.02 命名SQL 02.05.02.01 开发页面流 02.05.02.02 开发页面 02.05.02.03 逻辑流开发 02.05.02.04 完善页面流开发 02.05.02.05 测试运行 02.05.03 Handler配置 02.05.03.01 开发Handler的实现类 02.05....

    EOS程序员教程EOS程序员教程

    EOS程序员教程 EOS程序员教程 EOS程序员教程

    普元EOS开发帮助手册

    普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册

    普元EOS7代码例子

    例子主要是自己学习过程中动手写的一些例子,包括命名SQL、Spring Bean等一些用法。

    05 EOS基础构件库参考手册.chm

    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.rar_EOS_普元_普元EOS_普元EOS教程

    EOS概览是普元开发工具eos的入门资料!学习完此概览将对SOA开发有进一步的深入!

Global site tag (gtag.js) - Google Analytics