ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jishnu123 <rjis...@gmail.com>
Subject Re: IBatis Array feild insertion problem in postgres database()Please help me)
Date Wed, 14 Oct 2009 06:27:48 GMT


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:rjishnu@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 rjishnu@gmail.com
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>>>>> For additional commands, e-mail: user-java-help@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-unsubscribe@ibatis.apache.org
>>>>> For additional commands, e-mail: user-java-help@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-unsubscribe@ibatis.apache.org
>>>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>>>
>>>>>
>>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>
>>>
>>>
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@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-tp25799490p25886006.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


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


Mime
View raw message