Я сделал с Mybatis3, должно быть похоже на старые вещи iBatis. Чтобы получить материал JDBC, прочитайте эту ветку . Это огромная нить, но она есть. Ищите «ArrayDescriptor».
По сути, вам нужно написать TypeHandler. В TypeHandler вызовите setArray. Должно быть что-то подобное в mybatis 3.x. Ваша работа со списком, просто конвертировать с помощью метода toArray. Это пример, где параметром является строка [].
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 обязательно укажите обработчик типа.