Ibatis and Oracle Types
Convert a Java object to a Oracle type in the ibatis Typehandler:
public void setParameter(ParameterSetter setter, Object parameter)throws SQLException{
TestExample te = (TestExample) parameter;
Statement stmt = setter.getPreparedStatement();
OracleConnection conn = (OracleConnection) stmt.getConnection();
Object[] input = new Object[]
{ te.getTest1,
te.getTest2,
te.getTest3
};
oracle.sql.StructDescriptor structDesc = oracle.sql.StructDescriptor.createDescriptor("SCHEMANAME.TEST_OT", conn);
oracle.sql.STRUCT structObject = new STRUCT(structDesc, conn, input);
setter.setObject(structObject);
}
Convert the Oracle type to a java type:
public Object getResult(ResultGetter getter) {
STRUCT struct = (STRUCT) getter.getObject();
TestExample te = new TestExample();
te.setTest1((String)struct.getAttributes()[0]);
te.setTest2((Integer)struct.getAttributes()[1]);
return te;
}

Comments are closed.