- 浏览: 1052678 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
http://blog.csdn.net/fy_kenny/archive/2008/04/30/2350586.aspx
全部是针对Microsoft SQL Server 2000的Stored Procedure的例子:
参照《iBATIS in Action》书写:
1. max_in_example
Stored Procedure:
CREATE PROCEDURE [dbo].[max_in_example]
@a INTEGER = 0 OUTPUT,
@b INTEGER = 0 OUTPUT,
@c INTEGER = 0 OUTPUT
AS
BEGIN
IF (@a > @b)
SET @c = @a
ELSE
SET @c = @b
RETURN @c
END
GO
SqlMap:
<parameterMap id="pm_in_example" class="java.util.Map">
<parameter property="c" javaType="int" jdbcType="INTEGER"
mode="OUT" />
<parameter property="a" javaType="int" jdbcType="INTEGER" />
<parameter property="b" javaType="int" jdbcType="INTEGER" />
</parameterMap>
<procedure id="in_example" parameterMap="pm_in_example"
resultClass="int">
{ ? = call max_in_example(?, ?) }
</procedure>
Java Code:
publicstatic Integer getMax_in_example(int a, int b) throws SQLException {
Map<String, Integer> m = new HashMap<String, Integer>(2);
m.put("a", new Integer(a));
m.put("b", new Integer(b));
m.put("c", new Integer(0));
//执行存储过程in_example
sqlMapper.queryForObject("in_example", m);
return m.get("c");
}
2. swap
Stored Procedure:
CREATE PROCEDURE [dbo].[swap]
@a INTEGER OUTPUT,
@b INTEGER OUTPUT
AS
BEGIN
DECLARE @temp INTEGER
SET @temp = @a
SET @a = @b
SET @b = @temp
END
GO
SqlMap:
<parameterMap id="swapProcedureMap" class="java.util.Map">
<parameter property="a" javaType="int" jdbcType="INTEGER"
mode="INOUT" />
<parameter property="b" javaType="int" jdbcType="INTEGER"
mode="INOUT" />
</parameterMap>
<procedure id="swapProcedure" parameterMap="swapProcedureMap">
{ call swap(?, ?) }
</procedure>
Java Code:
publicstatic Map swap(int a, int b) throws SQLException {
Map<String, Integer> m = new HashMap<String, Integer>(2);
m.put("a", new Integer(a));
m.put("b", new Integer(b));
//执行存储过程swap
sqlMapper.queryForObject("swapProcedure", m);
return m;
}
3. maximum
Stored Procedure:
CREATE PROCEDURE [dbo].[maximum]
@a INT OUTPUT,
@b INT OUTPUT,
@c INT OUTPUT
AS
BEGIN
IF(@a > @b)
SET @c = @a
IF(@b >= @a)
SET @c = @b
END
GO
SqlMap:
<parameterMap id="maxOutProcedureMap" class="java.util.Map">
<parameter property="a" mode="IN" />
<parameter property="b" mode="IN" />
<parameter property="c" jdbcType="INTEGER" mode="OUT" />
</parameterMap>
<procedure id="maxOutProcedure"parameterMap="maxOutProcedureMap">
{ call maximum (?, ?, ?) }
</procedure>
Java Code:
publicstatic Integer maximum(int a, int b) throws SQLException {
Map<String, Integer> m = new HashMap<String, Integer>(2);
m.put("a", new Integer(a));
m.put("b", new Integer(b));
m.put("c", new Integer(0));
//执行存储过程maximum
sqlMapper.queryForObject("maxOutProcedure", m);
return m.get("c");
}
以上的Java Code类方法都是写在相应的ProcedureDAOImpl类中,可以通过ProcedureDAOImpl类调用相应得方法和传入对应参数来与数据库存储过程交互。
注意:在SqlMap.xml文件中<parameterMap>中参数的顺序跟<Procedure>中”?”的顺序一致。
如:a, b, c; ? = procedurename(?, ?) 则,第一个问号表示a,依次类推。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fy_kenny/archive/2008/04/30/2350586.aspx
发表评论
-
list in传参 与批量插入 批量更新
2017-04-01 10:48 818传入一个map的参数,map里有一个tenantIds的Lis ... -
ibatis in ##的问题
2012-11-02 13:25 856http://www.hake.cc/a/biancheng/ ... -
ibatis缓存强制刷新与命中率
2012-10-19 19:06 1395缓存强制刷新: // spring注入 private Sq ... -
数据日志记录讨论
2011-10-26 18:51 953详情见附件中的PPT -
Ibatis的类型处理器TypeHandler解析
2011-10-24 16:28 3329原文来自: http://blog.csdn.net/lovi ... -
ibatis mysql 字段 tinyint(1) map应用要小心
2011-10-20 18:18 4006http://www.mysqlab.net/docs/ref ... -
spring+ibatis注解方式注入
2011-10-15 17:24 1039http://www.cnblogs.com/archie20 ... -
webwork+spring+ibatis注解培训文档
2011-08-15 17:26 1400今天整理了 spring 注解的使用,主要是结合公司 ... -
ibatis知识点收藏
2011-07-08 23:11 9221. 原来如此,所以在遍历之前要设置被跌代对象 h ... -
iBATIS自动生成主键
2011-07-08 22:50 998我们在数据库插入一条 ... -
ibatis配置log4j输出sql语句等日志信息
2011-07-08 22:47 1608总结步骤如下: 建立一个log4j.properties文 ... -
iBATIS一对多/多对多N+1问题解决方案
2011-07-08 22:30 1211对于iBATIS一对多/多对多的问题,传统的办法是在一对多/多 ... -
强制刷新Ibatis中的缓存(OSCache)
2011-07-08 22:21 1452持久层使用Ibatis,并开启动缓存 后台画面可用如下代码强制 ... -
让sqlmap文件 "继承" 起来
2011-07-08 22:18 1452多个项目中使用ibatis , 和数据库表对应的 sqlmap ... -
Ibatis比较少人使用的配置语法
2011-07-08 22:12 1655简单来说,ibatis3虽然没有ognl,不过也支持基本的表达 ... -
ibatis查询返回java.util.HashMap结果列表
2011-07-08 22:00 8213DAO的实现类中的代码: Java代码 ... -
ibatis使用总结(转)
2011-05-27 23:21 1562SqlMap的配置是iBatis中应 ... -
ibatis配置详解
2011-05-27 10:26 1123ibatis配置详解 ibatis与hi ... -
ibatis配置文件的namespace
2011-05-27 10:20 2908ibatis的配置文件中有一个命名空间的属性,如<sql ... -
ibatis配置多表关联(一对一、一对多、多对多)
2011-05-27 08:41 1353iBatis的多表关联。 ibatis的表关联,和数据库语句 ...
相关推荐
ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...
在Java开发中,iBATIS(现在被称为MyBatis)是一个流行的数据持久层框架,它允许开发者将SQL语句直接嵌入到Java代码中,从而简化数据库操作。...希望这个示例能帮助你更好地理解iBATIS调用存储过程的方法。
本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库中创建一个存储过程。以下是一个Oracle数据库中的存储过程示例: ```sql CREATE OR REPLACE PROCEDURE pp ...
根据提供的文件信息,标题为“ibatis调用存储过程”,主要关注的是如何使用ibatis框架来调用数据库中的存储过程。下面将详细解释ibatis框架的基本概念、存储过程的概念以及如何在ibatis中配置和执行存储过程。 ### ...
iBatis调用存储过程
ibatis调用oracle存储过程分页
### Ibatis调用存储过程详解 #### 一、引言 在实际的软件开发过程中,存储过程因其执行效率高及数据库级别的安全性等优点被广泛应用于各种业务场景之中。而对于使用Ibatis作为持久层框架的应用来说,如何有效地...
最后,在Java代码中,通过ibatis的Session对象调用存储过程,传入必要的参数,处理返回的结果集。 ```java SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources....
本文将深入探讨如何使用iBatis调用存储过程并返回游标,这是一个在处理复杂数据库操作时常见的需求。 ### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以...
#### 使用Ibatis调用存储过程 Ibatis是一个Java持久层框架,它能够简化Java应用程序与数据库之间的交互。为了调用上述存储过程并正确处理返回值,我们需要进行以下配置: ##### 日志配置(log4j.properties) ```...
"IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...
调用存储过程: ```java Map, Object> params = new HashMap(); params.put("id", id); sqlSession.execute("updateEmployeeStatus", params); String status = (String) params.get("status"); ``` 5. **...
在实际项目中,使用Ibatis调用存储过程时,还应注意以下几点: 1. 不同的数据库系统可能有不同的存储过程调用语法,如Oracle、MySQL、SQL Server等,需要根据具体数据库进行调整。 2. 存储过程中的输出参数在Java...
本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...
在这个项目中,我们结合了Spring框架、Ibatis持久层框架以及Blazeds技术,来演示如何调用存储过程并处理返回的结果集。下面将详细讲解这些技术的运用。 首先,J2EE是一种广泛用于开发分布式企业应用的平台,它提供...
学习这两份文档,开发者不仅可以理解iBATIS的基本工作原理,还能掌握如何高效地利用iBATIS调用存储过程,提高数据库操作的灵活性和性能。对于Java开发者,尤其是从事Web应用开发的人员,深入理解和熟练运用iBATIS是...
本篇文章将深入探讨如何在Ibatis中实现增、删、查、改(CRUD)操作,并调用存储过程,同时涉及相关的表结构设计。 首先,Ibatis通过XML配置文件或注解方式定义了SQL语句,允许我们编写动态SQL,以适应不同的查询...
在IT行业中,数据库操作是不可或缺的一部分,而IBatis作为一款流行的数据映射框架,提供了一种灵活的方式来处理SQL语句,包括调用存储过程。存储过程是数据库中预编译的SQL语句集合,可以提高性能、增强安全性,并...