Saya sudah selesai dengan Mybatis3, harus serupa dengan iBatis lama. Untuk mendapatkan barang JDBC, baca utas ini . Ini adalah utas besar, tetapi ada di sana. Cari "ArrayDescriptor".
Pada dasarnya, Anda perlu menulis TypeHandler. Di TypeHandler, panggil setArray. Seharusnya seperti ini di mybatis 3.x. Anda bekerja dengan Daftar, cukup konversi dengan metode toArray. Ini adalah contoh, di mana parameternya adalah 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);
}
dan mungkin seperti ini di 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);
}
Jadikan Anda telah membangun sebuah tipe, seperti yang tertulis di utas itu.
yaitu
CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)
Kemudian di peta SQL, pastikan untuk mereferensikan penangan tipe.