Jag har gjort med Mybatis3, borde vara liknande i den gamla iBatis-grejen. För att få JDBC-grejer, läs denna tråd . Det är en stor tråd, men den finns där. Leta efter "ArrayDescriptor".
I grund och botten måste du skriva en TypeHandler. I TypeHandler, anrop setArray. Borde vara något liknande i mybatis 3.x. Du arbetar med en lista, bara konvertera med toArray-metoden. Detta är ett exempel där parametern är en String[].
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
.....
public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException
{
//null check?
ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY ", ps.getConnection());
ARRAY oracleArray = new ARRAY(desc, ps.getConnection(), parameter);
ps.setArray(i, oracleArray);
}
och kanske något liknande i ibatis,
public void setParameter(ParameterSetter setter, Object parameter) throws SQLException
{
ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY", setter.getPreparedStatement().getConnection());
ARRAY oracleArray = new ARRAY(desc, setter.getPreparedStatement().getConnection(), parameter);
setter.setArray(oracleArray);
}
Gör din du har byggt en typ, som det står i den tråden.
dvs.
CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)
Se sedan till att referera till typhanteraren i SQL-kartan.