Thank you for your reply...I have already implemented  type handler and all
classes as follows...But i got the the same error as follows....Please help
me.....I didn't try array feild selection....I have been trying to insertion
of array feild...

I have to mention again that error as follows....Any body get an idea please
reply immediately..

INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] -
<Loading XML bean definitions from class path resource
[org/springframework/jdbc/support/sql-error-codes.xml]>
INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] -
<SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL,
Oracle, PostgreSQL, Sybase]>


Ingmar Lötzsch wrote:
> 
> You can use a type handler and implement java.sql.Array. Example:
> 
> 1st: abstract superclass as adapter
> 
> public abstract class SqlArrayAdapter
> implements Array
> {
>       public Object getArray() throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public Object getArray(long index, int count) throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public Object getArray(long index, int count, Map<String, Class< ? >>
> map) throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public Object getArray(Map<String, Class< ? >> map) throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public int getBaseType() throws SQLException
>       {
>               // Auto-generated method stub
>               return 0;
>       }
>       
>       public String getBaseTypeName() throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public ResultSet getResultSet() throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public ResultSet getResultSet(long index, int count) throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public ResultSet getResultSet(long index, int count, Map<String, Class<
> ? >> map) throws SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
>       
>       public ResultSet getResultSet(Map<String, Class< ? >> map) throws
> SQLException
>       {
>               // Auto-generated method stub
>               return null;
>       }
> }
> 
> 2nd: implementation of java.sql.Array for use with int[] or
> Collection<Integer>
> 
> public class IntArray
> extends SqlArrayAdapter
> {
>       private static final Integer[] emptyArray = new Integer[0];
>       
>       private int[] array;
>       
>       public IntArray(int[] array)
>       {
>               if (array == null)
>               {
>                       throw new IllegalArgumentException("parameter array 
> should not be
> null");
>               }
>               this.array = array;
>       }
>       
>       public IntArray(Collection<Integer> set)
>       {
>               if (set == null)
>               {
>                       throw new IllegalArgumentException("parameter set 
> should not be null");
>               }
>               Integer[] keys = set.toArray(emptyArray);
> 
>               this.array = new int[keys.length];
>               for (int i = 0; i < keys.length; ++i)
>               {
>                       Integer key = keys[i];
>                       this.array[i] = key.intValue();
>               }
>       }
>       
>       @Override
>       public int getBaseType()
> //    throws SQLException
>       {
>               return Types.INTEGER;
>       }
> 
>       /**
>        * This method is called by driver ver. 8 but not by ver. 7.
>        */
>       @Override
>       public String getBaseTypeName()
> //    throws SQLException
>       {
>               return "int4";
>       }
>       
>       /**
>        * This method is called by both drivers ver. 8 and 7.
>        */
>       @Override
>       public String toString()
>       {
>               String result = "{";
>               for (int i = 0; i < this.array.length; ++i)
>               {
>                       if (i > 0)
>                       {
>                               result += ",";
>                       }
>                       result += this.array[i];
>               }
>               result += "}";
>               return result;
>       }
>       
>       public void free()
> //    throws SQLException
>       {
>               this.array = null;
>       }
> }
> 
> 3rd: implementation of TypeHandlerCallback
> 
> public class IntArrayTypeHandler
> implements TypeHandlerCallback
> {
>       public void setParameter(ParameterSetter setter, Object parameter)
>       throws SQLException
>       {
>               Collection<Integer> keys = (Collection<Integer>) parameter;
>               IntArray intArray = new IntArray(keys);
>               setter.setArray(intArray);
>       }
>       
>       public Object getResult(ResultGetter getter)
>       throws SQLException
>       {
>               Array array = getter.getArray();
>               return array;
>       }
>       
>       public Object valueOf(String string)
>       {
>               return string;
>       }
> }
> 
> 4th: add the type handler to your configuration
>       <typeAlias alias="IntArrayTypeHandler"
> type="com.asci.common.ibatis.IntArrayTypeHandler" />
> 
> 5th: SQL map
> 
> <select id="selectFahrgastById" parameterClass="map" resultMap="...">
>       SELECT
>               k.id,
>               ...
>       FROM kunden AS k
>       WHERE k.id = ANY (#fahrgastIds,handler=IntArrayTypehandler#)
> </select>
> 
> 6th: DAO
> 
> public List<Fahrgast> selectFahrgastById(Set<Integer> fahrgastIds)
> {
>       HashMap<String, Object> params = new HashMap<String, Object>();
>       params.put("fahrgastIds", fahrgastIds);
>       List<Fahrgast> list = getSqlMapClientTemplate().queryForList(
>               "datenerfassung.selectFahrgastById", params);
>       return list;
> }
> 
> jishnu123 schrieb:
>> 
>>    Hai,
>> 
>>          I have to tried insertion of array feild in postgres database
>> using
>> spring mvc with iBatis.I got two lines error ...like 
>> 
>>                                 Error as follows...
>> 
>> 
>> [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] -
>> <Loading
>> XML bean definitions from class path resource
>> [org/springframework/jdbc/support/sql-error-codes.xml]>
>>  [org.springframework.jdbc.support.SQLErrorCodesFactory] - <SQLErrorCodes
>> loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle,
>> PostgreSQL,
>> Sybase]>
>> 
>> 
>>    Its urgent ....Please help me........Any one has an idea  please 
>> reply
>> immediately otherwise sent to my emaild id rjis...@gmail.com 
>>       
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
> For additional commands, e-mail: user-java-h...@ibatis.apache.org
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/IBatis-Array-feild-insertion-problem-in-postgres-database%28%29Please-help-me%29-tp25799490p25815639.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org

Reply via email to