The problem is

Cause: java.lang.ClassCastException: org.ada.kms.domain.IntArray cannot
> be cast to java.util.Collection

Your version of IntArrayTypeMapper expects a Collection<Integer> but
actual parameter is of type org.ada.kms.domain.IntArray because you let
iBATIS call getKmsgrpaccessiblegroup():

#kmsgrpaccessiblegroups,handler=KmsArrayTypeMapper#

Correct the following:

1. Don't use IntArray as member of your domain classes.

private int[] kmsgrpaccessiblegroups;

public int[] getKmsgrpaccessiblegroups()
{
        return kmsgrpaccessiblegroups;
}

public void setKmsgrpaccessiblegroups(int[] kmsgrpaccessiblegroups)
{
        this.kmsgrpaccessiblegroups = kmsgrpaccessiblegroups;
}

This is enough.

2. In your TypeHandler you have to change one line to use int[] instead
of Collection<Integer>:

public class IntArrayTypeMapper implements TypeHandlerCallback
{
        public void setParameter(ParameterSetter setter, Object parameter)
        throws SQLException
        {
                int[] keys = (int[]) 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;
        }
}

Collection<Integer> was for my requirements.

3. Adapt the sql map (kmsgrpaccessiblegroups instead of
kmsgrpaccessiblegroup).

<insert id="insertgroups" parameterClass="kmsgroup">
        INSERT INTO kms.kms_group
        (
                kms_grp_groupid,
                kms_grp_groupname,
                kms_group_active,
                kms_grp_description,
                kms_grp_createdon,
                kms_grp_createdby,
                kms_grp_accessiblegroups
        )
        VALUES
        (
                #kmsgrpgroupid#,
                #kmsgrpgroupname#,
                #kmsgroupactive#,
                #kmsgrpdescription#,
                #kmsgrpcreatedon#,
                #kmsgrpcreatedby#,
                #kmsgrpaccessiblegroups,handler=KmsArrayTypeMapper#
        )
</insert>

I suggest to register the IntArrayTypeMapper class under its own name
and not "KmsArrayTypeMapper".

Before you ask again, try to answer my questions and make the
recommended tests.

jishnu123 schrieb:
> 
> Dear Ingmar Lötzsch,
> 
> 
>                 Still, I am facing the problem  for inserting array field
> through  iBatis..
> Current error list as  follows...
> 
> Errors List in insert groups::::::::::::::SqlMapClient operation;
> uncategorized SQLException for SQL []; SQL state [null]; error code [0];   
> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
> --- The error occurred while applying a parameter map.  
> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
> --- Check the parameter mapping for the 'kmsgrpaccessiblegroup' property.  
> --- Cause: java.lang.ClassCastException: org.ada.kms.domain.IntArray cannot
> be cast to java.util.Collection; nested exception is
> com.ibatis.common.jdbc.exception.NestedSQLException:   
> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
> --- The error occurred while applying a parameter map.  
> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
> --- Check the parameter mapping for the 'kmsgrpaccessiblegroup' property.  
> --- Cause: java.lang.ClassCastException: org.ada.kms.domain.IntArray cannot
> be cast to java.util.Collection
> 
> 
> If you get any idea please sent me immediately......
> 
> Ingmar Lötzsch wrote:
>> Look at the stacktrace:
>>
>>> Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
>>> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.
>>> --- The error occurred while applying a parameter map.
>>> --- Check the kmsgroups.insertgroups-InlineParameterMap.
>>> --- Check the parameter mapping for the 'kmsgroupactive' property.
>> The INSERT failed because of an NullPointerException.
>>
>> Seems this is related to property kmsgroupactive.
>>
>> What type is kmsgroupactive?
>>
>> What is the actual value of kmsgroupactive during excution?
>>
>> Set a breakpoint in your DAO and inspect the parameters.
>>
>> Seems your problem is not related to the array.
>>
>> jishnu123 schrieb:
>>> Hai,
>>>
>>> Thank you for your reply....I got exception details as follows.....please
>>> reply immediately...
>>>
>>> org.springframework.jdbc.UncategorizedSQLException: SqlMapClient
>>> operation;
>>> uncategorized SQLException for SQL []; SQL state [null]; error code [0];   
>>> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
>>> --- The error occurred while applying a parameter map.  
>>> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
>>> --- Check the parameter mapping for the 'kmsgroupactive' property.  
>>> --- Cause: java.lang.NullPointerException; nested exception is
>>> com.ibatis.common.jdbc.exception.NestedSQLException:   
>>> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
>>> --- The error occurred while applying a parameter map.  
>>> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
>>> --- Check the parameter mapping for the 'kmsgroupactive' property.  
>>> --- Cause: java.lang.NullPointerException
>>> Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
>>> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
>>> --- The error occurred while applying a parameter map.  
>>> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
>>> --- Check the parameter mapping for the 'kmsgroupactive' property.  
>>> --- Cause: java.lang.NullPointerException
>>>     at
>>> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:110)
>>>     at
>>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393)
>>>     at
>>> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
>>>     at
>>> org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:370)
>>>     at
>>> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:194)
>>>     at
>>> org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:368)
>>>     at
>>> org.ada.kms.daoimpl.KmsAddServiceImpl.insertGroups(KmsAddServiceImpl.java:98)
>>>     at
>>> org.ada.kms.formcontrollers.KmsGroupsFormController.onSubmit(KmsGroupsFormController.java:70)
>>>     at
>>> org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:267)
>>>     at
>>> org.springframework.web.servlet.mvc.AbstractFormController.handleInvalidSubmit(AbstractFormController.java:671)
>>>     at
>>> org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:272)
>>>     at
>>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>>     at
>>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>>     at
>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:859)
>>>     at
>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793)
>>>     at
>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
>>>     at
>>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>     at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>     at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>>>     at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>>     at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>     at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>     at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>>>     at
>>> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
>>>     at
>>> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
>>>     at
>>> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
>>>     at java.lang.Thread.run(Thread.java:619)
>>> Caused by: java.lang.NullPointerException
>>>     at
>>> com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameter(ParameterMap.java:166)
>>>     at
>>> com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameters(ParameterMap.java:126)
>>>     at
>>> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:78)
>>>     at
>>> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
>>>     at
>>> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
>>>     ... 30 more
>>> Errors List in insert groups::::::::::::::SqlMapClient operation;
>>> uncategorized SQLException for SQL []; SQL state [null]; error code [0];   
>>> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
>>> --- The error occurred while applying a parameter map.  
>>> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
>>> --- Check the parameter mapping for the 'kmsgroupactive' property.  
>>> --- Cause: java.lang.NullPointerException; nested exception is
>>> com.ibatis.common.jdbc.exception.NestedSQLException:   
>>> --- The error occurred in org/ada/kms/sqlmap/KmsgroupSQLMap.xml.  
>>> --- The error occurred while applying a parameter map.  
>>> --- Check the kmsgroups.insertgroups-InlineParameterMap.  
>>> --- Check the parameter mapping for the 'kmsgroupactive' property.  
>>> --- Cause: java.lang.NullPointerException
>>>
>>>
>>>
>>>
>>>
>>>
>>> Ingmar Lötzsch wrote:
>>>>>> INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]
>>>> INFO does not mean there was thrown an exception.
>>>>
>>>> What exceptions do you get?
>>>>
>>>> Are you certain all methods are invoked?
>>>>
>>>> Can you set breakpoints in
>>>>
>>>> - KmsGroup.getKmsgrpaccessiblegroup()
>>>> - ...DAO.insertGroups(KmsGroup kmsgroup)
>>>>
>>>> and debug the program?
>>>>
>>>> Consider to take all Java code out of the JSP. Nowadays it's a bad
>>>> practice to intermingle HTML and Java code.
>>>>
>>>> When plain JDBC works, make a test with iBATIS only. When this works,
>>>> make a test with Spring and iBATIS out of the webapp. When this works,
>>>> test your webapp.
>>>>
>>>> Ingmar
>>>>
>>>> jishnu123 schrieb:
>>>>> Dear Ingmar Lötzsch,
>>>>>
>>>>> Thank you for your reply.You send that  code is  working fine..Normal
>>>>> code 
>>>>> it was worked .
>>>>> Problem for integration of spring mvc with iBatis....
>>>>> I have  put some related code as follows....
>>>>>
>>>>> 1)My jsp page
>>>>>
>>>>> <td align="left"  width="200">
>>>>>                                   <label for="Othergroups">Other 
>>>>> Accessible Groups :</label>
>>>>>                                   </td>
>>>>>                           <td align="left" width="100"><select 
>>>>> name="kmsgrpaccessiblegroups"
>>>>>           class="hintanchor" onMouseover="showhint('Please choose  other 
>>>>> groups
>>>>> Should consist of drag and drop list.', this, event, '200px')"
>>>>>           multiple="multiple" style="width: 140px" size="4">
>>>>>                   <%
>>>>>                                   for(int i=0; i<oGroupArraylist.size(); 
>>>>> i++) {
>>>>>                                       obKmsgroup = 
>>>>> (KmsGroup)oGroupArraylist.get(i);
>>>>>                                   %>
>>>>>                   <option name="<%=obKmsgroup.getKmsgrpgroupname()%>"
>>>>>                   
>>>>> value="<%=obKmsgroup.getKmsgrpgroupid()%>"><%=obKmsgroup.getKmsgrpgroupname()%></option>
>>>>>                   <%
>>>>>                                   }
>>>>>   
>>>>>                                   %>
>>>>>           </select></td>
>>>>>
>>>>> 2)domain class
>>>>>
>>>>>        private int[] kmsgrpaccessiblegroups;
>>>>>   private IntArray kmsgrpaccessiblegroup;
>>>>>   
>>>>>   public IntArray getKmsgrpaccessiblegroup() {
>>>>>       return kmsgrpaccessiblegroup;
>>>>>   }
>>>>>   public void setKmsgrpaccessiblegroup(IntArray kmsgrpaccessiblegroup) {
>>>>>       this.kmsgrpaccessiblegroup = kmsgrpaccessiblegroup;
>>>>>   }
>>>>> public int[] getKmsgrpaccessiblegroups() {
>>>>>       return kmsgrpaccessiblegroups;
>>>>>   }
>>>>>   public void setKmsgrpaccessiblegroups(int[] kmsgrpaccessiblegroups) {
>>>>>       this.kmsgrpaccessiblegroups = kmsgrpaccessiblegroups;
>>>>>       logger.info("setKmsgrpaccessiblegroups  set to "
>>>>> +kmsgrpaccessiblegroups);
>>>>>   }
>>>>>
>>>>> 3)FormController
>>>>>
>>>>> int[] arrayData=obkmsgroup.getKmsgrpaccessiblegroups();
>>>>>   
>>>>>           for(int i=0;i<arrayData.length;i++)
>>>>>       System.out.println("The data of the array=="+arrayData[i]);
>>>>>   IntArray intArray = new IntArray(arrayData);
>>>>>   logger.info("INT ARRAY DETAILS=="+intArray);
>>>>>   obkmsgroup.setKmsgrpaccessiblegroup(intArray);
>>>>> 4)Dao Implementatiion
>>>>>  public  void insertGroups(KmsGroup kmsgroup)throws Exception{
>>>>>   logger.info("Start Executing query for insert kmsgroups");
>>>>>   template.insert("kmsgroups.insertgroups",kmsgroup);
>>>>>     }
>>>>> 4)Mapping file
>>>>> <typeAlias alias="IntArrayTypeHandler"
>>>>> type="org.ada.kms.domain.IntArrayTypeHandler"/> 
>>>>>   <insert id="insertgroups" parameterClass="kmsgroup">
>>>>>                      
>>>>>    INSERT INTO
>>>>> kms.kms_group(kms_grp_groupid,kms_grp_groupname,kms_group_active,kms_grp_description,kms_grp_createdon,kms_grp_createdby,kms_grp_accessiblegroup)
>>>>>  
>>>>>       
>>>>> VALUES(#kmsgrpgroupid#,#kmsgrpgroupname#,#kmsgroupactive#,#kmsgrpdescription#,#kmsgrpcreatedon#,#kmsgrpcreatedby#,
>>>>>        #kmsgrpaccessiblegroup,handler=IntArrayTypeHandler#)
>>>>>  
>>>>>    </insert>
>>>>>
>>>>> 5)Alraedy implemented java beans  like IntArray,SqlArrayAdapter, and
>>>>> IntArrayTypeHandler
>>>>>
>>>>>
>>>>> The same message get the eclipse console as follows..
>>>>>
>>>>>> 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]> 
>>>>>  
>>>>> Any idea u get please reply immediately....
>>>>>
>>>>> Ingmar Lötzsch wrote:
>>>>>> Can you post the exceptions?
>>>>>>
>>>>>> Can you do the following:
>>>>>>
>>>>>> On SQL-client (Console/pgAdmin)
>>>>>>
>>>>>> CREATE TABLE arraytest
>>>>>> (
>>>>>>  id int NOT NULL PRIMARY KEY,
>>>>>>  intarray int[] NOT NULL
>>>>>> )
>>>>>> WITHOUT OIDS;
>>>>>>
>>>>>> INSERT INTO arraytest (id, intarray) VALUES (1, ARRAY[1, 2]);
>>>>>> INSERT INTO arraytest (id, intarray) VALUES (2, '{1, 3}' :: int[]);
>>>>>>
>>>>>> Can you than execute the following code using class IntArray:
>>>>>>
>>>>>> import java.sql.Connection;
>>>>>> import java.sql.DriverManager;
>>>>>> import java.sql.PreparedStatement;
>>>>>>
>>>>>> public class ArrayTest
>>>>>> {
>>>>>>  public static void main(String[] args)
>>>>>>  {
>>>>>>          try
>>>>>>          {
>>>>>>                  Class.forName("org.postgresql.Driver");
>>>>>>                  String url = "jdbc:postgresql://localhost/test";
>>>>>>                  Connection con = DriverManager.getConnection(url, 
>>>>>> "postgres",
>>>>>> "admin");
>>>>>>                  
>>>>>>                  String sql = "INSERT INTO arraytest (id, intarray) 
>>>>>> VALUES (?, ?)";
>>>>>>                  PreparedStatement pstmt = con.prepareStatement(sql);
>>>>>>                  pstmt.setInt(1, 3);
>>>>>>                  int[] ints = {2, 4};
>>>>>>                  IntArray intArray = new IntArray(ints);
>>>>>>                  pstmt.setArray(2, intArray);
>>>>>>                  int rows = pstmt.executeUpdate();
>>>>>>                  System.out.println(rows);
>>>>>>                  pstmt.close();
>>>>>>                  con.close();
>>>>>>          }
>>>>>>          catch (Exception e)
>>>>>>          {
>>>>>>                  e.printStackTrace(System.out);
>>>>>>          }
>>>>>>  }
>>>>>> }
>>>>>>
>>>>>> Do you get any exceptions?
>>>>>>
>>>>>> jishnu123 schrieb:
>>>>>>> I have already implemented all java beans with
>>>>>>> SqlArrayAdapter,IntArray
>>>>>>> and
>>>>>>> IntArrayTypeHandler..But iam still facing the same
>>>>>>> problem....Actually
>>>>>>> i
>>>>>>> had
>>>>>>> implemented my project using spring mvc with iBatis..I think spring
>>>>>>> MVC
>>>>>>> problem...
>>>>>>>
>>>>>>> I again mention that particular error as follows....Any body have any
>>>>>>> idea
>>>>>>> to solve that problem... Please sent 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]>
>>>>>>>
>>>>>>>
>>>>>>> Rahul Saluja wrote:
>>>>>>>> Hi Jishnu,
>>>>>>>>
>>>>>>>> I cannot understand anything by given exception but yes suggested
>>>>>>>> implementation by Ingmar is rite approach and moreover which version
>>>>>>>> of
>>>>>>>> Postgres you are using as in 7.3.1 it is nlot possible to store the
>>>>>>>> array
>>>>>>>> data so better way of doing it is to convert the data in String and
>>>>>>>> push
>>>>>>>> it as varchar  and while retrieving back convert back it into your
>>>>>>>> required datatype array here is the example you can use for
>>>>>>>> insertion.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> import java.sql.SQLException;
>>>>>>>> import java.sql.Types;
>>>>>>>> import java.util.Vector;
>>>>>>>>
>>>>>>>> import com.hns.hss.nmf.common.util.unilogger.LogFactory;
>>>>>>>> import com.hns.hss.nmf.common.util.unilogger.LoggerIf;
>>>>>>>> import com.ibatis.sqlmap.client.extensions.ParameterSetter;
>>>>>>>> import com.ibatis.sqlmap.client.extensions.ResultGetter;
>>>>>>>> import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;
>>>>>>>>
>>>>>>>> public class ByteArrayToTimeStampHandler implements
>>>>>>>> TypeHandlerCallback
>>>>>>>> {
>>>>>>>> private static LoggerIf log_ =
>>>>>>>> LogFactory.getLoggerIf(ArraysToStringTypeHandler.class.getName());
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>         public Object getResult(ResultGetter arg0) throws
>>>>>>>> SQLException
>>>>>>>>         {
>>>>>>>>                 // TODO Auto-generated method stub
>>>>>>>>                 return null;
>>>>>>>>         }
>>>>>>>>
>>>>>>>>
>>>>>>>>         public void setParameter(ParameterSetter setter, Object
>>>>>>>> parameter)
>>>>>>>> throws SQLException
>>>>>>>>         {
>>>>>>>>                 if (parameter == null)
>>>>>>>>                 {
>>>>>>>>                         setter.setNull(Types.CHAR);
>>>>>>>>                 }
>>>>>>>>                 else
>>>>>>>>                 {
>>>>>>>>                         setter.setString(ArraysToString(parameter));
>>>>>>>>                 }
>>>>>>>>                 // TODO Auto-generated method stub
>>>>>>>>
>>>>>>>>         }
>>>>>>>>
>>>>>>>>
>>>>>>>>         public Object valueOf(String arg0)
>>>>>>>>         {
>>>>>>>>                 // TODO Auto-generated method stub
>>>>>>>>                 return null;
>>>>>>>>         }
>>>>>>>>
>>>>>>>>
>>>>>>>>         private String ArraysToString(Object obj)
>>>>>>>>         {
>>>>>>>>                 if (obj == null)
>>>>>>>>                 {
>>>>>>>>                         throw new IllegalArgumentException("Could
>>>>>>>> not
>>>>>>>> convert null to a String value. " + "Valid argument is an array of
>>>>>>>> type
>>>>>>>> I_U8  Only ");
>>>>>>>>                 }
>>>>>>>>
>>>>>>>>                 else if (obj instanceof
>>>>>>>> com.hns.hss.nmf.server.log.manager.gensrc.Common.I_U8[])
>>>>>>>>                 {
>>>>>>>>
>>>>>>>>         com.hns.hss.nmf.server.log.manager.gensrc.Common.I_U8[]
>>>>>>>> ourData
>>>>>>>> =
>>>>>>>> (com.hns.hss.nmf.server.log.manager.gensrc.Common.I_U8[]) obj;
>>>>>>>>                         int length = ourData.length;
>>>>>>>>                         Vector byteVector = new Vector();
>>>>>>>>                         //byte[] newByteArray = new byte[length-1];
>>>>>>>>                         int count = 0;
>>>>>>>>
>>>>>>>>                         for (int i = 0; i < length; i++)
>>>>>>>>                         {
>>>>>>>>
>>>>>>>>                                 if (ourData[i].getValue() == (byte)
>>>>>>>> '\0')
>>>>>>>> //\0 byte value
>>>>>>>>                                 {
>>>>>>>>                                         log_.debug(" NULL CHAR FOUND
>>>>>>>> ");
>>>>>>>>                                         break;
>>>>>>>>                                 }
>>>>>>>>                                 else
>>>>>>>>                                 {
>>>>>>>>                                        
>>>>>>>> byteVector.add(ourData[i].getValue());
>>>>>>>>                                         count++;
>>>>>>>>                                 }
>>>>>>>>                         }
>>>>>>>>                         log_.debug(" Byte Vector " + byteVector);
>>>>>>>>                         String finalHexString = new String();
>>>>>>>>                         StringBuffer finalString = new
>>>>>>>> StringBuffer();
>>>>>>>>                         //String returnString = new String();
>>>>>>>>                         try
>>>>>>>>                         {
>>>>>>>>                                 finalHexString =
>>>>>>>> ByteArrayToTimeStampHandler.getHexString(byteVector);
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                                
>>>>>>>> ByteArrayToTimeStampHandler.hexToString(finalHexString,
>>>>>>>> finalString);
>>>>>>>>                                 log_.debug("finalString is " +
>>>>>>>> finalString.toString());
>>>>>>>>
>>>>>>>>
>>>>>>>>                                 if ( ourData[0].getValue() !=
>>>>>>>> (byte)45
>>>>>>>> )
>>>>>>>> //Not a Negative Sign
>>>>>>>>                                  {
>>>>>>>>                                  log_.debug(" NOT A NEGATIVE SIGN
>>>>>>>> ");
>>>>>>>>                                  returnString = " " + finalString;
>>>>>>>>
>>>>>>>>
>>>>>>>>                                  }else // Negative Sign
>>>>>>>>                                  {
>>>>>>>>                                                  returnString = "-"
>>>>>>>> +
>>>>>>>> finalString;
>>>>>>>>
>>>>>>>>                                  }
>>>>>>>>
>>>>>>>>                         }
>>>>>>>>                         catch (Exception e)
>>>>>>>>                         {
>>>>>>>>                                 e.printStackTrace();
>>>>>>>>                         }
>>>>>>>>
>>>>>>>>                         String checkString = finalString.toString();
>>>>>>>>                         return checkString;
>>>>>>>>
>>>>>>>>                 }
>>>>>>>>                 else
>>>>>>>>                 {
>>>>>>>>
>>>>>>>>                         return null;
>>>>>>>>                 }
>>>>>>>>                 //return null;
>>>>>>>>
>>>>>>>>         }
>>>>>>>>
>>>>>>>>
>>>>>>>>         public static final void hexToString(String hex,
>>>>>>>> StringBuffer
>>>>>>>> out)
>>>>>>>>         {
>>>>>>>>                 if (hex == null) return;
>>>>>>>>                 int length = hex.length() & -4;
>>>>>>>>                 for (int pos = 0; pos < length; pos += 4)
>>>>>>>>                 {
>>>>>>>>                         int this_char = 0;
>>>>>>>>                         try
>>>>>>>>                         {
>>>>>>>>                 this_char = Integer.parseInt(hex.substring(pos, pos
>>>>>>>> +
>>>>>>>> 4),
>>>>>>>> 16);
>>>>>>>>                         }
>>>>>>>>                         catch (NumberFormatException NF_Ex)
>>>>>>>>                         {
>>>>>>>>                         }
>>>>>>>>                         out.append((char) this_char);
>>>>>>>>                 }
>>>>>>>>         }
>>>>>>>>
>>>>>>>>         public static String getHexString(Vector vector) throws
>>>>>>>> Exception
>>>>>>>>         {
>>>>>>>>
>>>>>>>>                 String result = "00";
>>>>>>>>                 short[] b = new short[vector.size()];
>>>>>>>>
>>>>>>>>                 for (int j = 0; j < vector.size(); j++)
>>>>>>>>                 {
>>>>>>>>
>>>>>>>>                         b[j] = ((Short) vector.get(j)).shortValue();
>>>>>>>>                 }
>>>>>>>>                 for (int i = 0; i < b.length; i++)
>>>>>>>>                 {
>>>>>>>>         result += Integer.toString((b[i] & 0xff) + 0x100,
>>>>>>>> 16).substring(1);
>>>>>>>>                         result += "00";
>>>>>>>>                 }
>>>>>>>>
>>>>>>>>                 return result.substring(0, result.length() - 2);
>>>>>>>>         }
>>>>>>>> }
>>>>>>>> -----Original Message-----
>>>>>>>> From: jishnu123 [mailto:rjis...@gmail.com]
>>>>>>>> Sent: Friday, October 09, 2009 10:49 AM
>>>>>>>> To: user-java@ibatis.apache.org
>>>>>>>> Subject: Re: IBatis Array feild insertion problem in postgres
>>>>>>>> database()Please help me)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 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
>>>>>>>> The information contained in this e-mail is private & confidential
>>>>>>>> and
>>>>>>>> may
>>>>>>>> also be legally privileged. If you are not the intended recipient,
>>>>>>>> please
>>>>>>>> notify us, preferably by e-mail, and do not read, copy or disclose
>>>>>>>> the
>>>>>>>> contents of this message to anyone.
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
>>>>>>>> For additional commands, e-mail: user-java-h...@ibatis.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
>>>>>> For additional commands, e-mail: user-java-h...@ibatis.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
>>>> For additional commands, e-mail: user-java-h...@ibatis.apache.org
>>>>
>>>>
>>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
>> For additional commands, e-mail: user-java-h...@ibatis.apache.org
>>
>>
>>
> 


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