मैंने Mybatis3 के साथ किया है, पुराने iBatis सामान में समान होना चाहिए। JDBC सामग्री प्राप्त करने के लिए, पढ़ें यह धागा . यह एक बड़ा धागा है, लेकिन यह वहां है। "ArrayDescriptor" देखें।
असल में, आपको टाइपहैंडलर लिखना होगा। टाइपहैंडलर में, 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 मैप में, टाइप हैंडलर को रेफर करना सुनिश्चित करें।