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]