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:[email protected]]
>>>>>>> Sent: Friday, October 09, 2009 10:49 AM
>>>>>>> To: [email protected]
>>>>>>> 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 [email protected]
>>>>>>>>>
>>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> 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: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>> 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: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
--
View this message in context:
http://www.nabble.com/IBatis-Array-feild-insertion-problem-in-postgres-database%28%29Please-help-me%29-tp25799490p26057542.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]