今天java小生贴出 java调用oracle function 的方法
List<WhiteBlackListInfo> whiteList = new ArrayList<WhiteBlackListInfo>();
List<List<String>> strList = new ArrayList<List<String>>();
Integer dataCount = 0;
Session session = null;
Connection con = null;
CallableStatement cstmt = null;
Transaction tr = null;
try {
session = getHibernateTemplate().getSessionFactory().openSession();
tr = session.beginTransaction();
con = session.connection();
cstmt = con.prepareCall("{? =call GETWHITELISTCOUNTBYSP(?,?,?,?,?,?,?)}");
cstmt.setString(2, startTime);
cstmt.setString(3, endTime);
cstmt.setInt(4, timeType);
cstmt.setInt(5, spID);
cstmt.setInt(6, pageSize);
cstmt.setInt(7, currentPage);
cstmt.registerOutParameter(1, Types.ARRAY, "WHITE_LIST_TYPE_ARRAY");//type
cstmt.registerOutParameter(8, java.sql.Types.INTEGER);
cstmt.executeUpdate();
dataCount = cstmt.getInt(8);
oracle.sql.ARRAY arry = (ARRAY) cstmt.getArray(1);
Array array = (Array) cstmt.getArray(1);
if (arry != null && arry.length() > 0) {
Object[] items = (Object[]) array.getArray();
Object obj;
for (int i = 0; i < items.length; i++) {
obj = items[i];
Struct a = (Struct) obj;
WhiteBlackListInfo wbInfo = new WhiteBlackListInfo();
wbInfo.setSpID(Integer.parseInt(a.getAttributes()[0]
.toString()));
wbInfo.setSpName(String.valueOf(a.getAttributes()[1]));
wbInfo.setSpCode(String.valueOf(a.getAttributes()[2]));
wbInfo.setSpTypeid(Integer.parseInt(a.getAttributes()[3]
.toString()));
wbInfo.setSpStatusid(Integer.parseInt(a.getAttributes()[4]
.toString()));
wbInfo.setWhiteListCount(Integer
.parseInt(a.getAttributes()[5].toString()));
whiteList.add(wbInfo);
}
}
tr.commit();
} catch (HibernateException e) {
e.printStackTrace();
tr.rollback();
log.error(e.getMessage());
} catch (SQLException e) {
e.printStackTrace();
tr.rollback();
log.error(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
log.error("error", e);
} finally {
;
}
分享到:
相关推荐
以上就是Java调用Oracle存储过程或函数的主要知识点,实践中要根据具体情况进行适当的调整和优化。在处理过程中,参考Oracle的JDBC文档和官方示例,以及Java API文档,将有助于理解和解决问题。
### Java调用Oracle的过程和函数 在现代软件开发过程中,Java与Oracle数据库的结合非常常见。为了更好地管理和处理数据,通常需要在Java程序中调用Oracle数据库中的存储过程或函数。本文将详细介绍如何通过Java来...
3. **Java调用Oracle函数**: 在Java中,你需要使用Oracle的JDBC驱动(ojdbc.jar和nls_charset12.jar)来与Oracle数据库交互。首先,你需要加载Oracle驱动并建立数据库连接。然后,你可以通过`CallableStatement`来...
以上是Java调用Oracle数据库过程和函数的基本步骤和关键知识点。实际应用中,可能还需要考虑事务管理、性能优化(如批处理)、连接池等高级主题。理解这些概念和操作对于开发高效、可靠的Java数据库应用至关重要。
本篇文章将深入探讨如何使用Hibernate的Query接口来调用Oracle的存储过程和函数,以及提供相关的示例代码和数据库文件。 首先,让我们了解什么是存储过程和函数。存储过程是预编译的SQL语句集合,可以接受参数、...
在Java编程中,有时我们需要调用Oracle数据库的存储过程,特别是当存储过程返回一个游标(Cursor)时,这种情况在处理大量数据或者分页查询时很常见。游标允许我们逐行处理结果集,而无需一次性加载所有数据,这对于...
本文将深入探讨如何在Hibernate中调用Oracle的函数,以实现高效的数据操作。 首先,我们需要理解Hibernate的核心理念,它允许开发者通过面向对象的方式来处理数据库操作,而无需编写大量的SQL语句。Hibernate通过...
Oracle调用Java代码过程是一种将Java程序集成到Oracle数据库中的技术,主要应用于处理特定的业务逻辑,例如在本例中,是为了访问异构数据库(如DB2)的数据。以下是详细的步骤和注意事项: **步骤一:加载JDBC驱动*...
为了使Oracle能够调用基于Java的WebService,还需要安装JDK并配置Oracle对Java的支持: 1. **下载并安装JDK**:确保Oracle运行环境中已安装Java环境。 2. **加载Java支持**:使用`loadjava`工具加载必要的JAR文件到...
### Linux环境下实现Java调用Windows环境下的Matlab函数 #### 一、所需条件及说明 为了实现在Linux环境中通过Java程序来调用Windows系统下的Matlab函数,首先需要确保满足以下条件: 1. **Windows环境下**: - ...
在“JAVA与存储过程.txt”文件中,可能包含了具体的示例代码,解释了如何在Java中调用Oracle存储过程和函数,以及如何处理输入和输出参数。这些示例可能涉及到了`Connection`, `PreparedStatement`, `ResultSet`等...
本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**:函数是一段可重复使用的PL/SQL代码,它接收输入参数(IN参数),可选地返回一个结果值(RETURN参数)。...
### Java调用存储过程详解 #### 一、存储过程简介 在数据库系统中,存储过程是一种预先编写并编译好的SQL脚本,它可以接受输入参数并返回结果集或输出参数。存储过程的主要优点包括提高性能(因为它们是预编译的)...
在系统实现中,有时会有直接在数据库端利用触发器、存储过程等方式进行数据传递、分发的业务,而其中可能会涉及一些业务逻辑,为了处理这些业务逻辑,并简单起见,可以直接在触发器或存储过程中调用一些 Java 类或 ...
Java操作Oracle数据库主要涉及到Java数据库连接(JDBC)API的使用,这是Java编程人员与数据库交互的标准接口。本文主要分享了一些在使用Oracle数据库时优化Java应用程序的技巧。 1. **选择 Thin 驱动程序**: 在...
用 Java 调用 Oracle 存储过程可以使用 JDBC 或 Oracle 的java驱动程序。下面是用 Java 调用 Oracle 存储过程的总结: 1. 无返回值的存储过程 无返回值的存储过程可以使用 CallableStatement 来调用。 2. 有...
3. 调用函数:在SQL查询中调用这个函数,例如`SELECT your_function('汉字') FROM DUAL;`,这将返回指定汉字的五笔码。 需要注意的是,由于五笔字典较大,存储和查询可能会有性能问题,所以在实际应用中,可能需要...
在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...
总结,CallableStatement在Java中用于调用Oracle存储过程,无论是无返回值、有返回值还是返回结果集,都可以通过设置参数、注册`OUT`参数、处理结果集来实现。在实际开发中,注意数据库连接的管理以及异常的处理,...
这主要得益于Oracle公司在Java 6版本引入的一个新特性——Java Scripting API(JSR 223),它允许Java程序执行多种脚本语言,包括JavaScript。 ### 1. Java Scripting API (JSR 223) JSR 223是Java的一个标准接口...