Направих с Mybatis3, трябва да е подобно в старите неща на iBatis. За да получите JDBC неща, прочетете тази тема . Нишката е огромна, но я има. Потърсете "ArrayDescriptor".
По принцип трябва да напишете TypeHandler. В TypeHandler извикайте setArray. Трябва да има нещо подобно в mybatis 3.x. Работите със списък, просто конвертирайте с метода toArray. Това е пример, където параметърът е 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);
}
и може би нещо подобно в 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);
}
Уверете се, че сте изградили тип, както пише в онази тема.
т.е.
CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)
След това в SQL картата не забравяйте да посочите манипулатора на типа.