public List<Map<String , Object>> doCallProcedure(String procedureString,String[] parameters) throws PersistentDataOperationException { if (!isReady ()) { throw new PersistentDataOperationException( "DAO is not ready."); } ResultSet rs = null; List<Map< String, Object>> list = new ArrayList<Map<String ,Object>>(); try { Connection con=session.connection(); String procedure = "{call "+procedureString+ "(?,?,?) }"; //拼装调用存储过程字符串 CallableStatement cstmt = con.prepareCall (procedure ); //调用存储过程 cstmt.setString (1,parameters [0 ]); //设置入参 cstmt.setInt (2, Integer. parseInt( parameters[ 1])) ;//设置入参 cstmt.registerOutParameter (3, oracle.jdbc.OracleTypes.CURSOR ); //设置出参 cstmt.execute (); //执行提交 rs = (ResultSet ) cstmt.getObject (3 ); //获取出参,3为参数顺序数 ResultSetMetaData rsm =rs.getMetaData (); //获得列集 Map< String, Object> map= null; int col = rsm.getColumnCount (); //获得列的个数 String colName [] = new String[ col] ;//列名集合 for (int i = 0; i < col; i++) { colName [i ] = rsm.getColumnName (i+1 ); } while( rs.next()){ //注意访问结果集是从索引位置1开始的,而不是0 map = new HashMap< String, Object> (); for (int j = 0; j < colName.length; j++) { map.put (colName [j ], rs.getString (j+1 )); } list.add (map ); } session.flush (); } catch (HibernateException e) { throw new PersistentDataOperationException( e) ; } catch (SQLException e) { e.printStackTrace (); } return list; }
相关推荐
Java调用存储过程并封装成Map是Java开发中一个常见的需求,通过本文,我们将详细介绍如何使用Java调用存储过程并将结果封装成Map对象,以便于后续的数据处理。 一、为什么需要调用存储过程 在实际开发中,我们经常...
### JAVA调用ORACLE存储过程通用类 #### 概述 在Java开发中,经常会遇到需要与数据库交互的情况,特别是当涉及到复杂的业务逻辑时,利用数据库的存储过程可以有效地提高程序性能并简化代码结构。本篇文章将详细...
对于 `P_EMP_SELECT` 存储过程,我们使用 `CallableStatementCallback` 对象调用存储过程,并将结果集处理到 `List` 集合中。 对于 `P_EMP_ADD` 存储过程,我们使用 `CallableStatementCallback` 对象调用存储过程...
本文将围绕“Ibatis调用存储过程”这一主题展开讨论,旨在帮助读者理解并掌握在Ibatis中调用存储过程的方法。 #### 二、存储过程与Ibatis简介 ##### 2.1 存储过程简介 存储过程是一种在数据库中预先编译好的SQL...
MyBatis作为一款流行的Java持久层框架,它提供了调用存储过程的功能,使得开发者能够方便地在Java应用中利用数据库的存储过程。下面将详细介绍如何在MyBatis中调用存储过程以及相关的知识点。 1. MyBatis概述 ...
MyBatis作为一款流行的Java持久层框架,提供了调用存储过程的功能。下面将详细介绍如何在MyBatis中配置和使用存储过程。 ### 1. 配置MyBatis XML映射文件 在MyBatis的映射文件(mapper.xml)中,我们需要为存储...
本文将详细讲解如何使用Java实现XML到Map以及Map到XML的一键转换,并介绍一个已封装好的工具类`EasyXmlUtil`。 首先,XML到Map的转换涉及到XML的解析。在Java中,我们可以使用`javax.xml.parsers....
本项目名为“封装调用储存过程架包”,其核心功能在于提供一个直接通过Java代码调用jar包内部方法的方式来执行数据库的储存过程,并将所有的OUT参数以Map的形式返回,大大简化了开发流程。 首先,我们来理解一下...
总的来说,Java中将XML转换为Map的过程涉及XML的解析、数据结构的映射以及转换策略的选择。根据实际需求,可以选择合适的工具和方法来实现这一目标。在实际项目中,为了提高可维护性和灵活性,通常建议封装这个过程...
映射器XML文件中的`<insert>`标签使用`statementType="CALLABLE"`指示这是一个调用存储过程的语句。然后,我们使用`{call ...}`语法来定义存储过程的调用,其中每个参数都以`#{}`包裹,`jdbcType`指定了JDBC的类型,...
通过对打印任务的封装和对不同打印场景的支持,该工具类极大地简化了开发过程,并为企业提供了强大的打印解决方案。开发者可以根据具体需求进一步扩展该工具类的功能,例如增加更多的快递公司模板支持、优化异常处理...
调用存储过程: ```java Map, Object> params = new HashMap(); params.put("id", id); sqlSession.execute("updateEmployeeStatus", params); String status = (String) params.get("status"); ``` 5. **...
Java Bean是一种符合特定规范的类,通常用于封装业务数据,而Map则是一种键值对的集合,便于灵活地存储和查找数据。在实际开发中,我们常常需要将Java Bean对象与Map对象之间进行转换,以便于数据的处理和传输。以下...
3. **从Java调用SAS存储过程**: - 使用SAS Integration Technologies (IT) APIs,尤其是Integrated Object Model (IOM),与SAS服务器进行通信。 - 首先,建立一个到SAS Workspace Server的连接,获取`...
在Java代码中,我们首先准备输入参数并设置输出参数类型,然后调用存储过程并处理返回结果。 ### 总结 通过上述步骤,我们可以看到使用Ibatis框架调用Oracle存储过程并返回自定义类型的过程。这种方法不仅能够提高...
例如,用户可以输入"添加学生",然后输入学生的ID、姓名和其他信息,系统将这些信息封装成Student对象,并调用`addStudent()`方法插入Map。 总结起来,这个"java学生管理系统map"项目运用了Java集合框架中的Map接口...
总结来说,读取.properties文件并将其内容转化为Map对象,以及将Map对象写回文件的过程,是Java开发中的常见操作。这使得我们可以方便地管理配置信息,并允许在不同环境间灵活切换配置。在实际项目中,可以进一步...
在Java开发中,数据结构的转换是常见的任务之一,例如将Map对象转换为XML格式的字符串,或者将XML数据解析成Map对象。标题提到的"MAP<--->XML格式互相转换接口,已封装,可直接使用(java版)"正是这样一个工具,它...
关于Java调用存储过程,通常是在数据库操作中进行的。存储过程是预先在数据库中编译好的SQL语句集合,通过Java的JDBC(Java Database Connectivity)API可以调用这些存储过程。以下是一个基本示例,假设有一个名为`...