`

ibatis2.x调用oracle存储过程

阅读更多
一.JAVA对象
public class User implements Serializable {
 
    private static final long serialVersionUID = -6919964218508186044L;  
    private int id;  
    private String name;  
    private Date birthday;
   
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public Date getBirthday() {  
        return birthday;  
    }  
    public void setBirthday(Date birthday) {  
        this.birthday = birthday;  
    }  
} 
  
二.JAVA对象对应XML配置
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE sqlMap        
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"        
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="testProcedure"> 
    <parameterMap class="java.util.Map" id="procedureMap"> 
        <!-- 设置存储过程输出参数 --> 
        <parameter property="curr" jdbcType="ORACLECURSOR"  javaType="java.sql.ResultSet" mode="OUT" /> 
    </parameterMap> 
 
    <!-- resultClass设置游标返回数据类型 --> 
    <procedure id="getAllUser" resultClass="com.bijian.User" parameterMap="procedureMap"> 
        {call getAllUser(?)}  
    </procedure>
    <!-- 表结构  
        create table IBATIS_USER  
        (  
          ID       NUMBER not null,  
          NAME     VARCHAR2(20) not null,  
          birthday DATE not null  
        ) 
    --> 
      
    <!-- 存储过程  
    create or replace procedure getAllUser(curr_users out sys_refcursor)  
  as 
  begin   
    open curr_users for select * from ibatis_user;  
  end; 
    --> 
</sqlMap>
 
三.ibatis总配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
 PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
 "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
 <properties resource="jdbc.properties"/>
 <settings
  cacheModelsEnabled="true"
  enhancementEnabled="true"
  lazyLoadingEnabled="true"
  maxRequests="32"
  maxSessions="10"
  maxTransactions="5"
  useStatementNamespaces="false"/>
 <transactionManager type="JDBC" commitRequired="false">
  <dataSource type="DBCP">
   <property name="JDBC.Driver" value="${jdbc.driverClassName}"/>
   <property name="JDBC.ConnectionURL" value="${jdbc.url}"/>
   <property name="JDBC.Username" value="${jdbc.username}"/>
   <property name="JDBC.Password" value="${jdbc.password}"/>
   <property name="Pool.MaximumActiveConnections" value="10"/>
   <property name="Pool.MaximumIdleConnections" value="5"/>
   <property name="Pool.MaximumCheckoutTime" value="120000"/>
   <property name="Pool.TimeToWait" value="500"/>
   <property name="Pool.PingQuery" value="${jdbc.testsql}"/>
   <property name="Pool.PingEnabled" value="false"/>
   <property name="Pool.PingConnectionsOlderThan" value="1"/>
   <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
   <property name="validationQuery" value="${jdbc.testsql}"/>
  </dataSource>
 </transactionManager>
 <sqlMap resource="com/bijian/User.xml"/>
</sqlMapConfig>
  
 总配置对应的属性文件jdbc.properties
#jdbc属性配置信息
#ORACLE
jdbc.url=jdbc:oracle:thin:@192.168.1.100:1521:orcl
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.username=haiya
jdbc.password=kingdee
jdbc.testsql=select 1 from dual
  
四.调用主类
public class Test {
 private static SqlMapClient sqlMapper;
 
 static {
  Reader reader = null;
  try {
   reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if(reader != null) {
    try {
     reader.close();
    } catch (IOException e) {
     e.printStackTrace();
    } finally {
     reader = null;
    }
   }
  }
 }
 
 public static void main(String[] args) {  
     try {
      User user = null;
      List<User> userList = sqlMapper.queryForList("getAllUser");
      for(int i=0;i<userList.size();i++) {
       user = userList.get(i);
       System.out.println("id:" + user.getId());
       System.out.println("name:" + user.getName());
       System.out.println("birthday:" + user.getBirthday());
       System.out.println("");
      }
     } catch (SQLException e) {
   e.printStackTrace();
  }
 }
}
 
分享到:
评论

相关推荐

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程

    在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用...通过上述步骤,我们可以成功地使用ibatis调用Oracle存储过程,并处理返回的多个结果集。这不仅简化了数据库操作,还提高了代码的可读性和可维护性。

    IBatis.DataMapper.1.6.2.bin.zip

    - 新特性:增加了对新数据库特性的支持,如存储过程的调用。 - API更新:提供了一些新的API,使得操作更加简洁直观。 - 错误修复:修复了1.6.2版本中的一些已知问题,提高了框架的稳定性和可靠性。 4. **文件...

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

    2. **Oracle存储过程**:存储过程与函数类似,但不一定要返回值。它可以接收输入参数(IN参数)、输出参数(OUT参数)或者两者都有(IN/OUT参数),并可以执行一系列操作,如更新数据、查询等。例如,`PROCEDURE ...

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

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

    ibatis调用存储过程介绍

    本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库中创建一个存储过程。以下是一个Oracle数据库中的存储过程示例: ```sql CREATE OR REPLACE PROCEDURE pp ...

    IBATIS调用存储过程

    本文将详细探讨如何使用iBATIS调用Oracle存储过程,并处理返回的Cursor结果集。 首先,理解iBATIS调用存储过程的基本原理。iBATIS允许开发者在映射文件中定义存储过程调用,通过`&lt;procedure&gt;`标签来实现。在这个...

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

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

    ibatis+oracle实例

    3. **存储过程调用**:Ibatis可以通过`&lt;select&gt;`、`&lt;procedure&gt;`元素调用Oracle的存储过程,增强业务逻辑的封装性。 4. **连接池管理**:Ibatis可以与各种连接池(如C3P0、Druid、HikariCP等)集成,提高数据库连接...

    Ibatis.net+ oracle 简单事例

    对于Oracle,可能需要利用其特有的函数或特性,如PL/SQL存储过程、游标等。 3. **SQL映射接口**:在.NET 类中创建对应的接口,这个接口的方法对应XML文件中的SQL语句,实现业务逻辑与SQL的绑定。 4. **事务管理**...

    ibatis调存储过程返回游标

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

    Ibatis+Oracle(含对应数据库sql) 源码

    3. **SQL语句的编写**:包含增删改查(CRUD)的各种操作,可能涉及到存储过程、触发器等高级特性。 4. **数据持久化操作**:通过Ibatis实现Java对象与数据库记录之间的映射,理解动态SQL的概念。 5. **事务管理**...

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

    在实际项目中,使用Ibatis调用存储过程时,还应注意以下几点: 1. 不同的数据库系统可能有不同的存储过程调用语法,如Oracle、MySQL、SQL Server等,需要根据具体数据库进行调整。 2. 存储过程中的输出参数在Java...

    maven spring struts ibatis oracle框架整合

    2. **创建Maven项目**:初始化Maven项目,配置pom.xml文件,添加Spring、Struts、iBatis和Oracle驱动等相关依赖。 3. **配置Spring**:定义bean配置文件,声明Service、DAO、DataSource等组件,启用Spring的AOP和...

    一个完整的oracle+ibatis小项目

    Oracle 和 iBatis 是两个在 Java Web 开发中广泛应用的技术。Oracle 是一款强大的关系型数据库管理系统,而 iBatis 是一个优秀的持久层框架,它能够将 SQL 与 Java 代码分离,提供更灵活的数据库访问方式。在这个"一...

    java struts2 + ibatis +oracle 整合简单登陆及增删改查实例

    这个实例展示了Java Web开发的基本流程,通过Struts2处理请求,iBatis管理数据库操作,Oracle提供数据存储。这样的组合在实际项目中非常常见,具有良好的可维护性和扩展性。理解并熟练掌握这一整合方式对于提升Java ...

    Spring MVC+ibatis+oracle框架整合

    通过这样的整合,开发者能够利用Spring MVC的控制反转和依赖注入,iBatis的SQL灵活性,以及Oracle的高性能存储,构建出一个稳定、高效的Web应用系统。同时,这个项目也为其他开发者提供了一个学习和参考的实例,帮助...

    struts2 存储过程

    5. **使用iBatis调用**: 在iBatis的映射文件中,定义一个select标签来调用存储过程: ```xml {call your_procedure(#{param1, mode=IN, jdbcType=VARCHAR}, #{result, mode=OUT, jdbcType=VARCHAR})} ``` ...

    struts2包+ibatis组合+oracle

    1. **分层架构**:Struts2处理视图和控制,iBatis处理数据访问,Oracle存储数据,层次清晰,易于维护。 2. **灵活性**:iBatis允许直接编写SQL,可以适应各种复杂的查询需求。 3. **性能**:Oracle数据库提供了强大...

Global site tag (gtag.js) - Google Analytics