Tôi đã làm với Mybatis3, sẽ tương tự trong những thứ iBatis cũ. Để tải nội dung JDBC, hãy đọc chủ đề này . Đó là một chủ đề lớn, nhưng nó ở đó. Tìm kiếm "ArrayDescriptor".
Về cơ bản, bạn cần viết một TypeHandler. Trong TypeHandler, hãy gọi setArray. Sẽ là một cái gì đó như thế này trong mybatis 3.x. Bạn đang làm việc với một Danh sách, chỉ cần chuyển đổi bằng phương thức toArray. Đây là một ví dụ, trong đó tham số là một Chuỗi [].
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);
}
và có thể tương tự như thế này trong 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);
}
Làm cho bạn đã xây dựng một loại, giống như nó nói trong chuỗi đó.
tức là
CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)
Sau đó, trong bản đồ SQL, hãy đảm bảo tham chiếu trình xử lý kiểu.