Jeg har gjort med Mybatis3, burde være ens i de gamle iBatis ting. For at få JDBC-tingene, læs denne tråd . Det er en kæmpe tråd, men den er der. Se efter "ArrayDescriptor".
Dybest set skal du skrive en TypeHandler. Kald setArray i TypeHandler. Skulle være sådan noget i mybatis 3.x. Når du arbejder med en liste, skal du bare konvertere med toArray-metoden. Dette er et eksempel, hvor parameteren er en streng[].
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);
}
og måske noget lignende 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 bygget en type, som der står i den tråd.
dvs.
CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)
Sørg derefter for at henvise til typebehandleren i SQL-kortet.