Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Przekaż i zwróć niestandardowy obiekt tablicy w ibatis i oracle w java

Musisz zacząć od niestandardowego wystąpienia TypeHandler . Wolimy zaimplementować prostszy TypeHandlerCallback , ale w tym scenariuszu potrzebujemy dostępu do bazowego Connection .

public class ArrayTypeHandler implements TypeHandler {

    public void setParameter(PreparedStatement ps, int i, Object param, String jdbcType)
            throws SQLException {
        if (param == null) {
            ps.setNull(i, Types.ARRAY);
        } else {
            Connection conn = ps.getConnection();
            Array loc = conn.createArrayOf("myArrayType", (Object[]) param);
            ps.setArray(i, loc);
        }
    }

    public Object getResult(CallableStatement statement, int i)
            throws SQLException {
        return statement.getArray(i).getArray();
    }
    ...
}

Następnie, aby podłączyć go w konfiguracji iBATIS:

<?xml version="1.0"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="arrayTest">

    <parameterMap id="storedprocParams" class="map">
        <parameter property="result" mode="OUT" jdbcType="ARRAY" typeHandler="ArrayTypeHandler"/>
        <parameter property="argument" mode="IN" jdbcType="ARRAY" typeHandler="ArrayTypeHandler"/>
    </parameterMap>

    <procedure id="storedproc" parameterMap="arrayTest.storedprocParams">
        {? = call My_Array_Function( ? )}
    </procedure>

</sqlMap>

Mam nadzieję, że to pomoże!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Integrator danych Oracle (ODI)

  2. Co musisz wiedzieć o tabeli FND_LOBS w aplikacjach Oracle

  3. Jak mogę uzyskać wczesny dostęp do aktualizacji Oracle Java, abym mógł przetestować moją aplikację RIA i uniknąć prób ogniowych, gdy te aktualizacje zostaną upublicznione?

  4. ORA-00054:zasób zajęty i pozyskiwanie za pomocą NOWIT określone

  5. Oświadczenie wstaw Oracle, jeśli nie istnieje