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

Reply via email to