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]
>
>
>
--
View this message in context:
http://www.nabble.com/IBatis-Array-feild-insertion-problem-in-postgres-database%28%29Please-help-me%29-tp25799490p25886006.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]