①转换数据库连接
②根据连接创建BOOKFAILED_ARRAY数组描述
③将传入的arrDelBook参数利用创建的数组描述,描述为数据库识别的数组
④创建CallableStatement接口
⑤将数组传入接口,并注册返回类型
public int delBookFailedHistory(final String[] arrDelBook){
//2.调用过程
int num = (Integer) this.getJdbcTemplate().execute(
new CallableStatementCreator() {
public CallableStatement createCallableStatement(
Connection con) throws SQLException {
//将连接还原成jdbc连接,不还原报jdbc连接不匹配
con=con.getMetaData().getConnection();
ArrayDescriptor ad = ArrayDescriptor.createDescriptor("BOOKFAILED_ARRAY",con);
ARRAY array = new ARRAY(ad, con, arrDelBook);
String storedProc = "{call JUSTONE4.P_DELETE_BOOK_FAILED_HISTORY(?,?)}";
CallableStatement cs = con.prepareCall(storedProc);
cs.setArray(1,array);
cs.registerOutParameter(2, OracleTypes.INTEGER);
return cs;
}
}, new CallableStatementCallback() {
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {
cs.execute();
int relut=cs.getInt(2);
return relut;
}
});
return num;
}
分享到:
相关推荐
### Java中传递数组参数 #### 一、传递数组到方法 在Java中,传递数组到方法的方式相对简单直观。可以通过以下几种方式实现: 1. **直接传递数组:** 在Java中,当我们想要将一个数组作为参数传递给某个方法时,...
在Java编程语言中,传递数组作为方法参数是一个常见的操作,特别是在处理批量数据或者进行集合操作时。本资源“wxh java中传递数组参数.rar”包含了关于这个主题的详细信息,特别是文档“java中传递数组参数.doc”。...
最后,对于错误处理,Java端可以捕获`LastErrorException`来获取调用过程中的错误信息。C++端的错误处理则依赖于你的库设计,通常通过返回值或设置全局错误变量。 总之,JNA提供了灵活的方式让Java与C++库进行交互...
Java 数组传递是指在方法之间传递数组对象的引用,而不是传递数组对象本身。这意味着,方法中对数组的修改将会影响原数组。在 Java 中,所有对象都是通过引用进行操作的,而数组也是一种对象。当把数组作为参数传递...
java调用远程接口传输数据的demo
以上就是使用jQuery AJAX向后台传递数组参数的完整过程,包括JSON序列化和反序列化的处理。请注意,这只是一个基础示例,实际项目中可能需要考虑更多的错误处理和数据验证。同时,不同的后端框架可能有内置的JSON...
Java环境配置是安装和设置Java开发环境的过程,包括以下几个关键步骤: 1. **下载JDK**:首先,从Oracle官网下载适用于您操作系统的Java Development Kit(JDK)。 2. **安装JDK**:运行下载的安装程序,按照向导...
本话题将详细讲解如何使用Java调用带有参数的Oracle存储过程,并获取存储过程返回的集合。 首先,Oracle存储过程是一种预编译的SQL语句集合,它可以在数据库服务器端执行,提高性能,减少网络传输。`PROCEDURE.sql`...
综上所述,"oracle class12.jar nls_charset12.jar存储过程接收数组空值"这个问题的核心在于正确处理数组中的空值,以及理解如何在Java和Oracle数据库之间传递数组参数。通过合理定义数组类型、初始化数组、正确传递...
Java中的数组初始化、数组引用以及数组作为参数传递等特性都为程序设计提供了极大的灵活性。理解这些概念对于编写高效且易于维护的Java程序至关重要。希望以上总结能够帮助你更好地理解Java中的数组和其“指针”特性...
本文将深入探讨如何使用JNI调用Java对象和数组,并在C/C++层进行操作,以及如何通过监听器传递数据。 首先,我们要了解JNI的基本结构。一个JNI程序通常包含Java源代码、C/C++源代码和对应的头文件。Java源代码中...
通过这种方式,MyBatis就能正确地调用PostgreSQL存储过程,并将Java数组传递给存储过程。这种自定义类型处理器的方法使得MyBatis能够灵活地处理各种数据库特有的数据类型,确保了跨数据库平台的兼容性和灵活性。 ...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
总的来说,JNI提供了强大的能力,让我们能够在Java和原生代码之间灵活地传递数据,包括对象数组。在实际开发中,理解JNI的工作原理和正确管理内存至关重要,以避免可能出现的内存泄漏和异常。同时,需要注意的是,...
如果方法接收数组作为参数,我们需要传递数组的类类型,例如`int[].class`。 3. 创建数组:使用`Array.newInstance()`方法创建指定类型的数组实例。例如,`Array.newInstance(int.class, 5)`将创建一个包含5个整数...
例如,`java层向jni层传递数组_转:Android开发实践:Java层与Jni层的数组传递_byte[]是双向传递的数组、指针.url`详细讲解了如何在Java和JNI之间传递`byte[]`数组。对于字符串,JNI提供`NewStringUTF`和`...
以上就是Android Studio中使用JNI传递数组的基本步骤。通过这种方式,开发者可以在C/C++层利用其高性能特性处理复杂计算,同时保持Java的易维护性和跨平台性。注意,使用JNI需要注意内存管理,避免内存泄漏和错误的...
JNI开发Java调用C传递int、String、Array类型参数; 详情参考: int类型: (https://blog.csdn.net/niuba123456/article/details/80959892) String类型(https://blog.csdn.net/niuba123456/article/details/80977247);...