Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Lewati dan kembalikan objek array khusus di ibatis dan Oracle di java

Anda harus memulai dengan instance khusus TypeHandler . Kami lebih suka menerapkan TypeHandlerCallback yang lebih sederhana , tetapi dalam skenario ini kita memerlukan akses ke Connection yang mendasarinya .

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();
    }
    ...
}

Kemudian, untuk menyambungkannya di konfigurasi 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>

Semoga ini bisa membantu!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EBS 12.2.5 dan Lebih Tinggi:Tombol Halaman Masuk Tidak Sejajar

  2. TO_DSINTERVAL() Fungsi di Oracle

  3. Array dalam klausa IN() oracle PLSQL

  4. Perbarui baris dalam satu tabel dengan data dari tabel lain berdasarkan satu kolom di masing-masing menjadi sama

  5. Kolom identitas Oracle dan masukkan ke pilih