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