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
>
>