Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

जावा में ibatis और oracle में कस्टम सरणी ऑब्जेक्ट पास करें और वापस करें

आपको TypeHandler . के कस्टम इंस्टेंस से शुरुआत करनी होगी . हम आसान TypeHandlerCallback . को लागू करना पसंद करेंगे , लेकिन इस परिदृश्य में हमें अंतर्निहित 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();
    }
    ...
}

फिर, इसे 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>

आशा है कि यह मदद करेगा!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑरैकल 10 जी में सभी असफल एसक्यूएल स्टेटमेंट लॉग करने का कोई तरीका है?

  2. एक अद्वितीय फ़िल्टर के साथ Oracle के LISTAGG फ़ंक्शन का उपयोग कैसे करें?

  3. Oracle कनेक्शन पूल क्लास

  4. Oracle में Rows को Column में कैसे बदलें?

  5. Oracle PL/SQL - तत्काल आउटपुट/कंसोल प्रिंटिंग के लिए टिप्स