You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Niall Pemberton <ni...@gmail.com> on 2009/12/16 16:54:03 UTC

Re: DBCP - Unable to successfully call Connection.createArrayOf() method

The createArrayOf() method was added in JDBC 4 / JDK 1.6:

http://tinyurl.com/yhwwejv

The current release of DBCP doesn't currently support JDBC 4 which is
why you're seeing this error. Commons is currently going through the
process of releasing DBCP 1.4 which will support JDBC 4 - hopefully
this will be available in the next couple of weeks.

Niall


On Wed, Dec 16, 2009 at 7:24 AM, Allan Kamau <ka...@gmail.com> wrote:
> I am trying create an array of text to pass to a postgreSQL function
> and I am getting the following error
> "java.lang.AbstractMethodError:
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array;"
>
> I have tried googling for a possible solution without much success the
> closed I got was the discussion in this thread
> "http://archives.postgresql.org/pgsql-jdbc/2009-04/msg00013.php"
>
> I am using JDBC driver (postgresql-8.4-701.jdbc4.jar) for postgreSQL
> and commons-dbcp-1.2.2.jar for connection pooling.
>
> My code like like this.
>
>
>        public static int persistUserInput(
>                Connection conn,String _user_input_id,Map<String,Vector<String>> userInputMap
>        )throws SQLException
>        {
>                int _rows_affected=-1;
>                String _input_name=null;
>                String _input_values[]=new String[0];
>                PreparedStatement ps=null;ResultSet rs=null;
>                for (Map.Entry<String,Vector<String>> y : userInputMap.entrySet())
>                {
>                        _input_name=y.getKey();
>                        Vector<String> v=y.getValue();
>                        _input_values=v.toArray(_input_values);
>                        try
>                        {
>
>                                String _sql_query=""
>                                        +" SELECT persist_user_input(?,?,?);"
>                                ;
>                                ps=conn.prepareStatement(_sql_query);
>                                ps.setString(1,_user_input_id);
>                                ps.setString(2,_input_name);
>                                ps.setArray(3,conn.createArrayOf("text",_input_values));
>                                rs=ps.executeQuery();
>                                if(rs.next())
>                                {
>                                        _rows_affected=rs.getInt(1);
>                                }
>                                rs.close();
>                                ps.close();
>                        }
>                        catch(SQLException e)
>                        {
>                                throw e;
>                        }
>                        finally
>                        {
>                                /*
>                                rs.close();
>                                ps.close();
>                                if(rs!=null&&!rs.isClosed())
>                                {
>                                        rs.close();
>                                }
>                                rs=null;
>                                if(ps!=null&&!ps.isClosed())
>                                {
>                                        ps.close();
>                                }
>                                ps=null;
>                                */
>                        }
>                }
>                return _rows_affected;
>        }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>