Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chuyển và trả về đối tượng mảng tùy chỉnh trong ibatis và oracle trong java

Bạn phải bắt đầu với một phiên bản tùy chỉnh của TypeHandler . Chúng tôi muốn triển khai TypeHandlerCallback đơn giản hơn , nhưng trong trường hợp này, chúng tôi cần quyền truy cập vào Connection bên dưới .

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

Sau đó, kết nối nó trong cấu hình 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>

Hy vọng điều này sẽ hữu ích!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL &PL / SQL là gì? Mọi thứ một người mới bắt đầu cần biết

  2. Thay đổi định nghĩa TYPE trong Oracle 21c

  3. cách tìm chỉ mục trên bảng trong oracle

  4. ORA-12705:Không thể truy cập tệp dữ liệu NLS hoặc môi trường không hợp lệ

  5. OracleDataSource so với Oracle UCP PoolDataSource