`
abin103
  • 浏览: 152920 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 调用oracle存储过程传入 数组参数 不用纯jdbc连接

阅读更多
搜遍了 大大小小的网页 都没有找到正确结果 苦恼啊
下面是我代码的一段
  ArrayDescriptor desc = ArrayDescriptor.createDescriptor("ALIST",connection);
   ARRAY aArray = new ARRAY(desc,  connection, al);
  pproc =(OracleCallableStatement) connection.prepareCall("{
              call  ATTEND.InsertAttendDataTest(?,?)}");
   pproc.setString(1, colstr);
  ((OracleCallableStatement) pproc).setARRAY(2, aArray);
  pproc.execute();
我的connection是jboss的连接池的连接 然后抛出:
java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.WrappedConnection cannot be cast to oracle.jdbc.OracleConnection
但是用纯的jdbc连接 就没有问题 请问如何转换connection 到oracle.jdbc.OracleConnection
而要使用jboss的连接池
分享到:
评论
3 楼 sunjl 2010-09-17  
问题关键在数据源上,你使用的应该是JBOSS管理的数据源。

单独写一段代码,使用ORACLE管理的数据源,可以解决这个问题,附上代码。

public static OracleDataSource getOracleDataSource()
    {
        OracleDataSource ds = null;
        try
        {
            ResourceBundle res = null;
            res = AccessController
                    .doPrivileged(new PrivilegedAction<ResourceBundle>()
                    {
                        public ResourceBundle run()
                        {
                            return ResourceBundle.getBundle("distributeDB");
                        }
                    });

            String url = res.getString("url");
            String user = res.getString("user");
            String password = res.getString("password");

            ds = new OracleDataSource();
            ds.setURL(url);
            ds.setUser(user);
            ds.setPassword(password);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return ds;
    }
2 楼 abin103 2009-06-24  
经转换 会有一下错误
java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.WrappedConnection cannot be cast to org.jboss.resource.adapter.jdbc.WrappedConnection
1 楼 abin103 2009-06-24  
WrappedConnection  c=(org.jboss.resource.adapter.jdbc.WrappedConnection )connection;

OracleConnection  cc=(OracleConnection )c.getUnderlyingConnection();
chen56 (初级程序员) 2008-12-02
经实践 无法通过

相关推荐

    Spring访问传入数组参数的Oracle存储过程

    总的来说,理解如何在Spring中正确地调用Oracle存储过程并传递数组参数是提高应用程序效率和数据库操作灵活性的重要技能。这涉及到了数据库设计、Java编程、Spring框架的使用以及对Oracle特定特性的掌握。通过上述...

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    3. Java调用Oracle存储过程:Java程序可以通过JDBC来调用Oracle存储过程,获取结果集。 4. Type类型:Type类型是Oracle中的一种数据类型,用于定义复杂数据结构。 5. PACKAGE和PROCEDURE:PACKAGE和PROCEDURE是...

    java调用oracle存储过程或者函数

    在Java编程中,调用Oracle数据库的存储过程和函数是常见的任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。以下将详细介绍这个过程,包括必要的步骤、使用的类和方法,以及可能遇到的问题和解决...

    java调用oracle存储过程(游标)相关

    总之,Java调用Oracle存储过程,尤其是处理游标,需要理解JDBC的使用、Oracle特定的类型以及存储过程的参数传递方式。通过合理的编程实践,我们可以高效地在Java应用程序中集成Oracle数据库的复杂操作。

    java调用Oracle存储过程

    在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与Oracle数据库进行交互,并调用存储过程。 首先,确保你已经在你的开发环境中安装了...

    Java调用带参数的存储过程并返回集合

    总结,Java调用Oracle存储过程涉及的关键点包括:JDBC连接,CallableStatement,输入/输出参数的设定,以及结果集的处理。理解这些知识点,能够帮助开发者有效地实现数据库操作,提升应用性能。

    java调用存储过程(含out参数)

    本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的概念。存储过程是预编译的SQL语句集合,存储在数据库服务器中,可以接受输入参数、输出参数,甚至同时具有...

    Mybatis调用PostgreSQL存储过程实现数组入参传递

    在MyBatis中调用这个存储过程需要解决两个问题:一是如何将Java中的数组转换为适合存储过程调用的形式,二是如何配置MyBatis以正确执行存储过程。 首先,MyBatis提供了`TypeHandler`接口,用于处理Java类型到JDBC...

    java调用oracle含有clob参数的存储过程.doc

    "Java 调用 Oracle 含有 CLOB 参数的存储过程" Java 调用 Oracle 含有 CLOB 参数的存储过程是一种常用的数据库操作方式,下面是该过程的详细介绍: 1. 连接数据库 在 Java 中连接 Oracle 数据库需要使用 Oracle ...

    java调用oracle存储过程

    总结起来,Java调用Oracle存储过程涉及到JDBC、数据库连接管理、CallableStatement的使用以及可能的自定义类型转换。通过合理运用这些技术,开发者可以高效地在Java应用中集成和利用Oracle数据库的功能。

    jdbc连接oracle,执行存储过程,带数据库存储过程

    本篇将详细介绍如何使用JDBC连接Oracle数据库并执行存储过程。 首先,我们需要理解JDBC的基本概念。JDBC是Java平台的标准API,它允许Java程序与各种数据库进行通信。通过JDBC,我们可以创建数据库连接、发送SQL语句...

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    在提供的`ConnUtils2.java`文件中,很可能包含了以上所述的Java数据库操作代码,例如建立JDBC连接、处理CLOB数据类型以及调用Oracle存储过程的方法。分析这个文件可以帮助我们更好地理解实际应用中的实现细节,包括...

    用java调用oracle存储过程总结.pdf

    在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑时。以下是关于如何使用Java调用Oracle存储过程的总结: 首先,我们来看无返回值的存储过程。创建一个名为`TESTA`的Oracle存储过程...

    ibatis调用oracle存储过程

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

    java调用存储过程.txt

    根据提供的文件信息,我们可以归纳出以下关于Java调用Oracle存储过程的关键知识点: ### 一、Java连接Oracle数据库 为了能够调用Oracle存储过程,首先需要建立Java程序与Oracle数据库之间的连接。这通常通过JDBC...

    调用Oracle的存储过程

    调用Oracle存储过程主要有两种方法:通过JDBC(Java Database Connectivity)API和使用Oracle的特定库如ojdbc.jar。首先,确保你已经添加了Oracle JDBC驱动到项目的类路径中,例如ojdbc.jar或ojdbc7.jar,这是连接...

    java调用oracle sqlserver存储过程共用方法

    这段代码展示了如何在Java中调用Oracle或SQL Server的存储过程,通过动态选择数据源,处理各种类型的参数,执行存储过程,并优雅地处理结果和释放资源。这种方法不仅提高了代码的复用性和效率,还增强了跨数据库操作...

    java调用oracle含有clob参数的存储过程.pdf

    在Java编程中,调用Oracle数据库的存储过程并处理CLOB(Character Large Object)类型参数是一项常见的任务。CLOB类型用于存储大量字符数据,如文本、XML文档等。以下是对标题和描述中所述知识点的详细解释: 1. **...

Global site tag (gtag.js) - Google Analytics