Ibatis2.0使用说明——配置篇(2)

ibatis总结 ibatis ibatis ibatis ibatis ibatis学习 ibatis总结 ibatis ibatis ibatis 立即下载
 
sqlMap所包含的标签
 
<sqlMap id="Product">
         <cacheModel id="productCache" type="LRU">
                   <flushInterval hours="24"/>
                   <property name="size" value="1000" />
         </cacheModel>
         <typeAlias alias="product" type="com.ibatis.example.Product" />
         <parameterMap id="productParam" class="product">
                   <parameter property="id"/>
         </parameterMap>
         <resultMap id="productResult" class="product">
                   <result property="id" column="PRD_ID"/>
                   <result property="description" column="PRD_DESCRIPTION"/>
         </resultMap>
         <select id="getProduct" parameterMap="productParam" resultMap="productResult" cacheModel="product-cache">
                   select * from PRODUCT where PRD_ID = ?
         </select>
</sqlMap>
 
The SQL Map XML File
( http://www.ibatis.com/dtd/sql-map-config-2.dtd)
 
一、Mapped Statements
Mapped statements可以是任何一个SQL statement,并且可以指定输入参数的map和输出结果的map。
简单的情况下,mapped statement可以直接指定一个类来做为输入参数和输出结果参数。mapped statement也可以使用cache model在内存中缓冲经常使用的数据。
 
<statement                  id="statementName"
                                     [parameterClass="some.class.Name"]
                                     [resultClass="some.class.Name"]
                                     [parameterMap="nameOfParameterMap"]
                                     [resultMap="nameOfResultMap"]
                                     [cacheModel="nameOfCache"]
>
         select * from PRODUCT where PRD_ID = [?|#propertyName#] order by [$simpleDynamic$]
</statement>
 
在上面的statement的配置中,放在[]中的配置参数是可选的,所以下面的Mapped Statement是完全合法的。
<statement id="insertTestProduct">
         insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) values (1, "Shih Tzu")
</statement>
 
下面逐一介绍各个标签的含义以及使用方法:

1. Statement 类型

下表中列出了所有的Statement,以及他们的属性和所支持的特征。
 
Statement Element
 
Attributes
 
Child Elements
 
Methods
 
<statement>
id
parameterClass
resultClass
parameterMap
resultMap
cacheModel
xmlResultName
All dynamic elements
insert
update
delete
All query methods
<insert>
 
id
parameterClass
parameterMap
All dynamic elements
<selectKey>
insert
update
delete
<update>
 
id
parameterClass
parameterMap
All dynamic elements
 
insert
update
delete
<delete>
 
id
parameterClass
parameterMap
All dynamic elements
insert
update
delete
<select>
 
id
parameterClass
resultClass
parameterMap
resultMap
cacheModel
All dynamic elements
All query methods
<procedure>
 
id
parameterClass
resultClass
parameterMap
resultMap
xmlResultName
All dynamic elements
insert
update
delete
All query methods
 
<statement id="statementName"
                     [parameterClass="some.class.Name"]
                     [resultClass="some.class.Name"]
                     [parameterMap="nameOfParameterMap"]
                     [resultMap="nameOfResultMap"]
                     [cacheModel="nameOfCache"]
>
       select * from PRODUCT where PRD_ID = [?|#propertyName#] order by [$simpleDynamic$]
</statement>

2. the SQL

sql语句无疑是map中最重要的组成部分,你可以使用任何的sql语句,只要你的数据库和JDBC驱动支持就行。你也可以使用数据库和驱动支持的任何函数。因为你是将sql语句写在了XML文档中,为了区别Sql中的"<>"和XML中的"<>",在写Sql时,可以用<![CDATA[ SQL ]]>来写。

3. 自增

很多关系型数据库都支持主键的自增,SQL Map可以通过<insert>标签中的<selectKey>来支持自增。预生成(如Oracle)和后生成(如Sql Server)都支持,下面是例子:
 
<!—Oracle SEQUENCE Example -->
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
       <selectKey resultClass="int" keyProperty="id" >
              SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
       </selectKey>
       insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
</insert>
 
<!— Microsoft SQL Server IDENTITY Column Example -->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
       insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
       <selectKey resultClass="int" keyProperty="id" >
              SELECT @@IDENTITY AS ID
       </selectKey>
</insert>

4. 存储过程

通过<procedure>标签来支持存储过程,下面的例子显示了如何使用带有输出参数的存储过程。
<parameterMap id="swapParameters" class="map" >
       <parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
       <parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
</parameterMap>
<procedure id="swapEmailAddresses" parameterMap="swapParameters" >
       {call swap_email_address (?, ?)}
</procedure>
 
调用上面的存储过程会在数据表的两列间交换Email地址,而且在对应的参数对象中的也会交换。记住:当parameter mapping的mode为INOUT或OUT的时候,
你输入的参数对象才会改变。很显然,不变的参数对象也是不会改变的,比如说String对象。
 
记住:一定要使用标准的JDBC存储过程的语法。请参见JDBC CallableStatement documentation以获取更多信息。
iBatis2.0文档 立即下载

相关推荐

ibatis2.0中文API

ibatis2.0中文API ibatis2.0中文API ibatis2.0中文API 一对多 多对一详解,属性设置详解,解决方案详解,ibatis2.0核心API

Ibatis2.0使用说明(二)——配置篇(2)

文章转载自互联网,如果您觉得我们侵权了,请联系管理员,我们会立刻处理。 sqlMap所包含的标签 <sqlMap id="Product"> <cacheModel id="productCache" type="LRU"> <flushInterval hou...

weixin_34209851的博客 145

ibatis2.0开发指南(官网)

我现在正在学习,自己还有很多不明白的地方,希望此资源对大家有所帮助!!

iBATIS动态标签

<br />§<dynamic>标签<br />§二元标签<br />§一元标签<br />§<iterate>标签<br />§ 共同的属性 prepend,open,close <br /><dynamic>标签<br /><br />§<dynamic>标签<br />§属性 prepend,open,close <br />二元条件标签<br /><br />§<isEqual property=“age” compareValue=“20”>   <br />比较属性值和静态值或另一个属性值是否相

永生天地 2320

AutoDock Vina 对接计算(大批量)

AutoDock Vina是一种用于计算生物分子之间相互作用的计算工具,主要用于蛋白质和小分子(通常是潜在药物分子)之间的对接研究。它可以用于虚拟筛选、药物设计和生物分子结合位点的预测等多个应用领域。

MurphyStar的博客 1万+

从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI

本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。

weixin_30823001的博客 321

Ibatis-dynamic的用法

在Ibatis中是Ibatis的动态查询条件,根据该属性中所包含的元素进行判断是否执行某一条SQL语句。 1、使用dynamic时 select * from Person表

JAVA架构师成长之路 7906

CAN总线开发必看:报文发送类型全解析(含Cycle/Event/CE/IfActive对比)

本文深入解析CAN总线开发中的四种报文发送类型(Cycle/Event/CE/IfActive),对比其核心特征与工程应用场景。通过典型ECU交互案例和决策矩阵,帮助开发者根据实时性、总线效率等需求选择最优方案,并详解信号发送模式与恢复机制,提升车载网络通信可靠性。

weixin_30632089的博客 313

Ibatis2.0使用说明(二)——配置篇(4)

文章转载自互联网,如果您觉得我们侵权了,请联系管理员,我们会立刻处理。 Parameter Maps and Inline Parameters <parameterMap id="parameterMapName" [class="Author"]> <parameter property ="propertyNam...

weixin_34226182的博客 236

深入解析SVPWM七段式与五段式调制的电压波形差异及优化策略

本文深入解析了SVPWM七段式与五段式调制在相电压和线电压波形上的核心差异。七段式波形对称、谐波含量低,适合追求静音与性能的场景;五段式开关次数少、损耗低,适用于对效率与散热要求高的应用。文章提供了基于谐波与损耗权衡的优化策略与选型指南。

weixin_29216957的博客 439

[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记

最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、做着开源的大神。接下来系统分享一些网络安全的自学笔记,希望读者们喜欢。 上一篇文章分享了看雪Web安全总结知识和一个异或解密的示例,本篇文章着重讲解Chrome浏览器保留密码功能渗透解析及登录加密入门笔记,结合实际例子一步步实现浏览器漏洞的挖掘。非常基础的文章,希望对入门的博友们有帮助,大神请飘过,谢谢各位看官!

杨秀璋的专栏 2万+

修改返回ibatis的AutoResultMap

/* * Copyright 2004 Clinton Begin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain...

u011660647的博客 313

QNX侧触摸屏(TP)Bringup流程与源码深度解析

QNX侧TP Bringup的核心在于构建。

QQ_778132974的博客 477

Ibatis2.0使用说明——配置篇(3)

 statement中的参数简介:1. parameterClassparameterClass 属性的值是Java类的全限定名(即包括类的包名)。parameterClass属性是可选的,目的是限制输入参数的类型为指定的Java 类。虽然Parameter-class属性是可选的,建议你为每一个SQL都指定parameterClass。如果不指定parameterClass

hjpengjava的专栏 536

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

一、    在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2    我花大半个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防    随着ROS版本的迭代,相关资料很多都不再适用

慕羽★的博客 3806

Python经典编程习题100例:第25例:求各个阶乘的和

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 求1+2!+3!+…+20!的和。 解题思路: > 调用math模块中的factorial函数 代码: import math sum=0 for i in range(1,21): sum+=math.factorial(i) print(sum) ..

优快云 精品推荐 2735

Ibatis2.0使用说明——配置篇(1)

 一、 SQL Map XML 配置文件SQL Map 使用XML 配置文件集中的配置不同的设置属性,包括DataSource 的详细配置信息,SQL Map 和其他可选属性,如线程管理等。以下是SQL Map 配置文件的一个例子:SqlMapConfig.xmlPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibat

hjpengjava的专栏 482

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

iBATIS 2.0 开发指南配置文件说明

ibatis基础代码包括: 1.  ibatis实例配置 一个典型的配置文件如下(具体配置项目的含义见后):  xml version="1.0" encoding="UTF-8"  ?>   DOCTYPE sqlMapConfig     PUBLIC "-//iBATIS.

浪缘的专栏 1301

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Ibatis2.0使用说明——配置篇(4)

  Parameter Maps and Inline Parameters                [nullValue="NUMERIC"] [null="-9999999"]/>              括号[]中是可选的属性。parameterMap 元素的id 属性作为唯一标识,在同一个SQL Map XML 文件中不能重名。一个paramet

hjpengjava的专栏 1411

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Ibatis2.0使用说明(二)——配置篇

一、 SQL Map XML 配置文件SQL Map 使用XML 配置文件集中的配置不同的设置属性,包括DataSource 的详细配置信息,SQL Map 和其他可选属性,如线程管理等。以下是SQL Map 配置文件的一个例子:SqlMapConfig.xmlPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.

goody9807的专栏 821

Ibatis2.0使用说明(二)——配置篇(3

statement中的参数简介:1. parameterClassparameterClass 属性的值是Java类的全限定名(即包括类的包名)。parameterClass属性是可选的,目的是限制输入参数的类型为指定的Java 类。虽然Parameter-class属性是可选的,建议你为每一个SQL都指定parameterClass。如果不指定parameterClass 参数,任何

1991

Ibatis2.0使用说明(二)——配置篇(1)

一、 SQL Map XML 配置文件SQL Map 使用XML 配置文件集中的配置不同的设置属性,包括DataSource 的详细配置信息,SQL Map 和其他可选属性,如线程管理等。以下是SQL Map 配置文件的一个例子:SqlMapConfig.xmlPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.

chaoma96的专栏 529

Ibatis2.0使用说明(二)——配置篇(3)

 statement中的参数简介:1. parameterClassparameterClass 属性的值是Java类的全限定名(即包括类的包名)。parameterClass属性是可选的,目的是限制输入参数的类型为指定的Java 类。虽然Parameter-class属性是可选的,建议你为每一个SQL都指定parameterClass。如果不指定parameterClass 参数,任何带有合适属

chaoma96的专栏 453
上一篇: Ibatis2.0使用说明——配置篇(1)
下一篇: Ibatis2.0使用说明——配置篇(3)
hjpengjava
博客等级 码龄18年 5粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值