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

ibatis存储过程调用(转载)

 
阅读更多

 1 ibatis 调用oracle函数示例
  2

  3
 
  4

  5
利用空余时间写的一个简单例子,数据库是oracle10g.
  6

  7
 
  8

  9
配置文件:
 10

 11
 OracleSqlMapConfig.xml
 12
Xml代码
 13

 14     1 .   <? xml version = " 1.0 "  encoding = " UTF-8 "   ?>
  
 15     2
.   
 16     3 <!
DOCTYPE sqlMapConfig        
 17     4 .     PUBLIC  " -//ibatis.apache.org//DTD SQL Map Config 2.0//EN "
        
 18     5 .      " http://ibatis.apache.org/dtd/sql-map-config-2.dtd " >
  
 19     6
.   
 20     7 < sqlMapConfig >
  
 21     8
.   
 22     9 .      <!--  Configure a built - in transaction manager.  If you ' re using an   

 23    10 .         app server, you probably want to use its transaction manager   
 24    11 .         and a managed datasource  -->
  
 25    12 .      < transactionManager type = " JDBC "  commitRequired = " false " >
  
 26    13 .          < dataSource type = " SIMPLE " >
  
 27    14 .              < property name = " JDBC.Driver "
  
 28    15 .                 value = " oracle.jdbc.driver.OracleDriver "   />
  
 29    16 .              < property name = " JDBC.ConnectionURL "
  
 30    17 .                 value = " jdbc:oracle:thin:@localhost:1521:ORCL "   />
  
 31    18 .              < property name = " JDBC.Username "  value = " scott "   />
  
 32    19 .              < property name = " JDBC.Password "  value = " tiger "   />
  
 33    20 .              < property name = " Pool.MaximumActiveConnections "  value = " 10 "   />
  
 34    21 .              < property name = " Pool.MaximumIdleConnections "  value = " 5 "   />
  
 35    22 .              < property name = " Pool.MaximumCheckoutTime "  value = " 120000 "   />
  
 36    23 .              < property name = " Pool.TimeToWait "  value = " 500 "   />
  
 37    24 .              < property name = " Pool.PingEnabled "  value = " false "   />
  
 38    25 .              < property name = " Pool.PingConnectionsOlderThan "  value = " 1 "   />
  
 39    26 .              < property name = " Pool.PingConnectionsNotUsedFor "  value = " 1 "   />
  
 40    27 .          </ dataSource >
  
 41    28 .      </ transactionManager >
  
 42    29
.   
 43    30 .      < sqlMap resource = " com/Emp.xml "   />
  
 44    31
.   
 45    32
.   
 46    33 </ sqlMapConfig >
  
 47

 48   <? xml version = " 1.0 "  encoding = " UTF-8 "   ?>

 49
 50 <!
DOCTYPE sqlMapConfig      
 51     PUBLIC  " -//ibatis.apache.org//DTD SQL Map Config 2.0//EN "
      
 52      " http://ibatis.apache.org/dtd/sql-map-config-2.dtd " >

 53
 54 < sqlMapConfig >

 55
 56      <!--  Configure a built - in transaction manager.  If you ' re using an 

 57         app server, you probably want to use its transaction manager 
 58         and a managed datasource  -->

 59      < transactionManager type = " JDBC "  commitRequired = " false " >
 60          < dataSource type = " SIMPLE " >
 61              < property name = " JDBC.Driver "
 62                 value = " oracle.jdbc.driver.OracleDriver "   />
 63              < property name = " JDBC.ConnectionURL "
 64                 value = " jdbc:oracle:thin:@localhost:1521:ORCL "   />
 65              < property name = " JDBC.Username "  value = " scott "   />
 66              < property name = " JDBC.Password "  value = " tiger "   />
 67              < property name = " Pool.MaximumActiveConnections "  value = " 10 "   />
 68              < property name = " Pool.MaximumIdleConnections "  value = " 5 "   />
 69              < property name = " Pool.MaximumCheckoutTime "  value = " 120000 "   />
 70              < property name = " Pool.TimeToWait "  value = " 500 "   />
 71              < property name = " Pool.PingEnabled "  value = " false "   />
 72              < property name = " Pool.PingConnectionsOlderThan "  value = " 1 "   />
 73              < property name = " Pool.PingConnectionsNotUsedFor "  value = " 1 "   />
 74          </ dataSource >
 75      </ transactionManager >
 76
 77      < sqlMap resource = " com/Emp.xml "   />

 78
 79

 80 </ sqlMapConfig >

 81
 82
 
 83

 84
  Emp.xml
 85
Xml代码
 86

 87     1 <? xml version = " 1.0 "  encoding = " UTF-8 "   ?>
  
 88     2
.   
 89     3 <!
DOCTYPE sqlMap        
 90     4 .     PUBLIC  " -//ibatis.apache.org//DTD SQL Map 2.0//EN "
        
 91     5 .      " http://ibatis.apache.org/dtd/sql-map-2.dtd " >
  
 92     6
.   
 93     7 < sqlMap namespace = " Emp " >
  
 94     8
.   
 95     9 .      <!--  取别名  -->
  
 96    10 .      < typeAlias alias = " emp "  type = " com.Emp "   />
  
 97    11
.   
 98    12 .      < resultMap id = " emp-map "   class = " emp " >
  
 99    13 .          < result property = " ename "  column = " ENAME "   />
  
100    14 .      </ resultMap >
  
101    15
.   
102    16 .      < parameterMap id = " test "   class = " java.util.HashMap " >
  
103       17 .          < parameter property = " result "  jdbcType = " ORACLECURSOR "  javaType = " java.sql.ResultSet "  mode = " OUT "  resultMap = " emp-map "   />
   
104    18 .          < parameter property = " param1 "  jdbcType = " VARCHAR "   javaType = " java.lang.String "  mode = " IN "   />
  
105    19 .      </ parameterMap >
  
106    20
.   
107    21 .      < procedure id = " testCur "  parameterMap = " test " >
  
108 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    22 .          { ?   =  call selectemp( ? )}
   
109    23 .      </ procedure >
  
110    24
.               
111    25 </ sqlMap >
  
112

139   数据库脚本:
140
Sql代码
152 create or replace function scott.selectemp(
153
        param1 in varchar2         
154 ) return
 sys_refcursor
155
is
156
outcursor sys_refcursor;
157
        begin 
158               open outcursor  for
 select ename from scott.emp where emp.ename like param1 ;
159                return
 outcursor;
160
        end;
161

162
 pojo类:
163
Java代码
164

165     1 package
 com;  
166     2
.   
167 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远     3 public   class  Emp 
{  
168     4
.   
169     5 .      private   int
 empno;  
170     6
.   
171     7 .      private
 String ename;  
172     8
.   
173     9 .      private
 String job;  
174    10
.   
175    11 .      private   float
 sal;  
176    12
.   
177    13 .      private   float
 comm;  
178    14
.   
179 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    15 .      public   float  getComm() 
{  
180    16 .          return
 comm;  
181    17 .     }
  
182    18
.   
183 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    19 .      public   void  setComm( float  comm) 
{  
184    20 .          this .comm  =
 comm;  
185    21 .     }
  
186    22
.   
187 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    23 .      public   int  getEmpno() 
{  
188    24 .          return
 empno;  
189    25 .     }
  
190    26
.   
191 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    27 .      public   void  setEmpno( int  empno) 
{  
192    28 .          this .empno  =
 empno;  
193    29 .     }
  
194    30
.   
195 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    31 .      public  String getEname() 
{  
196    32 .          return
 ename;  
197    33 .     }
  
198    34
.   
199 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    35 .      public   void  setEname(String ename) 
{  
200    36 .          this .ename  =
 ename;  
201    37 .     }
  
202    38
.   
203 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    39 .      public  String getJob() 
{  
204    40 .          return
 job;  
205    41 .     }
  
206    42
.   
207 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    43 .      public   void  setJob(String job) 
{  
208    44 .          this .job  =
 job;  
209    45 .     }
  
210    46
.   
211 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    47 .      public   float  getSal() 
{  
212    48 .          return
 sal;  
213    49 .     }
  
214    50
.   
215 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远    51 .      public   void  setSal( float  sal) 
{  
216    52 .          this .sal  =
 sal;  
217    53 .     }
  
218    54
.   
219    55 . }
  
220

280

281
 测试代码: 
282
Java代码
283

284     1 . Reader reader  =  Resources.getResourceAsReader( " com/OracleSqlMapConfig.xml "
);  
285     2 . SqlMapClient client  =
 SqlMapClientBuilder.buildSqlMapClient(reader);  
286     3
. reader.close();  
287     4 . Map < String, Object >  p  =   new  HashMap < String, Object >
();  
288     5 . p.put( " param1 " " %S% "
);  
289     6 . client.queryForObject( " testCur "
, p);  
290     7 . List list  =  (List) p.get( " result "
);  
291 ibatis存储过程调用(转载) - qindingsky - 宁静以致远ibatis存储过程调用(转载) - 
qindingsky - 宁静以致远     8 for  ( int  i  =   0 ; i  <  list.size(); i ++
{  
292     9 .  Emp emp  =
 (Emp) list.get(i);  
293    10
.  System.out.println(emp.getEname());  
294    11 . }
 

分享到:
评论

相关推荐

    ibatIS调用存储过程

    ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...

    Ibatis调用存储过程调用存储过程

    ### Ibatis调用存储过程详解 #### 一、引言 在实际的软件开发过程中,存储过程因其执行效率高及数据库级别的安全性等优点被广泛应用于各种业务场景之中。而对于使用Ibatis作为持久层框架的应用来说,如何有效地...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis调用存储过程

    当我们需要调用数据库中的存储过程时,iBATIS也提供了一种简便的方法。本篇文章将详细介绍如何在iBATIS中调用存储过程,包括带参数和不带参数的存储过程,并通过一个具体的例子进行说明。 首先,存储过程是预编译的...

    ibatis调用存储过程.txt

    根据提供的文件信息,标题为“ibatis调用存储过程”,主要关注的是如何使用ibatis框架来调用数据库中的存储过程。下面将详细解释ibatis框架的基本概念、存储过程的概念以及如何在ibatis中配置和执行存储过程。 ### ...

    iBatis调用存储过程

    iBatis调用存储过程

    ibatis调用存储过程介绍

    在Java开发中,使用iBATIS(现在称为MyBatis)作为持久层框架时,调用数据库的存储过程是一种常见的需求。本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库...

    ibatis调用oracle存储过程

    在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...

    IBatis查删改查与调用存储过程 mysql数据库

    "IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...

    ibatis调存储过程返回游标

    本文将深入探讨如何使用iBatis调用存储过程并返回游标,这是一个在处理复杂数据库操作时常见的需求。 ### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以...

    J2EE+Spring+Ibatis2+blazeds存储过程调用返回结果集

    在这个项目中,我们结合了Spring框架、Ibatis持久层框架以及Blazeds技术,来演示如何调用存储过程并处理返回的结果集。下面将详细讲解这些技术的运用。 首先,J2EE是一种广泛用于开发分布式企业应用的平台,它提供...

    Ibatis调用Oracle存储过程返回自定义类型

    ### Ibatis调用Oracle存储过程返回自定义类型 在企业级应用开发中,尤其是在金融、保险等业务场景中,往往需要处理复杂的数据结构与逻辑。本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现...

    ibatis增删查改,存储过程调用

    本篇文章将深入探讨如何在Ibatis中实现增、删、查、改(CRUD)操作,并调用存储过程,同时涉及相关的表结构设计。 首先,Ibatis通过XML配置文件或注解方式定义了SQL语句,允许我们编写动态SQL,以适应不同的查询...

    ibatis调用oracle的函数,存储过程的方法

    Ibatis,一个轻量级的Java持久层框架,提供了与数据库交互的能力,包括调用这些Oracle的函数和存储过程。本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**...

    ibatis官方中文文档

    **iBATIS存储过程调用** 在iBATIS中调用存储过程通常涉及以下几个步骤: 1. **配置存储过程**:在SQL映射文件中定义存储过程的标签,指定存储过程名以及输入和输出参数。 2. **设置参数**:在Java代码中创建参数...

    ibatis与存储过程(带输出参数的应用)

    在传统的SQL调用中,Ibatis通过XML配置文件或注解来定义SQL语句,但在某些场景下,如复杂的业务逻辑处理、批量操作等,存储过程的使用更为合适。 存储过程是数据库中预编译的SQL语句集合,它可以包含输入、输出和...

    ibatis调用oracle的函数,存储过程的方法 IN 和OUT /游标

    本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...

    IBatis中的存储过程应用实例

    在IT行业中,数据库操作是不可或缺的一部分,而IBatis作为一款流行的数据映射框架,提供了一种灵活的方式来处理SQL语句,包括调用存储过程。存储过程是数据库中预编译的SQL语句集合,可以提高性能、增强安全性,并...

Global site tag (gtag.js) - Google Analytics