sql >> データベース >  >> RDS >> Oracle

mybatisによって実行されたoracleプロシージャからパラメータを受信できません

    私は解決策を見つけました。 canCustomerSubscribeメソッドの2つのパラメーターではなく、マップをユーザーにする必要があります。

     void canCustomerSubscribe(Map<String,Object> params);
    

    mybatis xmlコンテンツ:

    <select id="canCustomerSubscribe" parameterType="java.util.HashMap" statementType="CALLABLE">
        CALL wallet.pkg_wallet_validation.can_customer_subscribe(
        #{msisdn, jdbcType=VARCHAR, javaType=java.lang.String, mode=IN},
        #{responseCode,jdbcType=NUMERIC, javaType=java.lang.Integer, mode=OUT})
    </select>
    

    (引数属性の間にコンマを追加する必要があります)

    サブスクライブサービスメソッドから呼び出す:

    public void subscribe(String msisdn) throws InvalidArgumentException {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("msisdn", msisdn);
        params.put("responseCode", null);
        subscriberMapper.canCustomerSubscribe(params);
        System.out.println(params.get("responseCode"));
    }
    



    1. PostgreSQL選択クエリの最大列数はいくつですか

    2. 非正規化:いつ、なぜ、どのように

    3. PostgreSQLでのPi()のしくみ

    4. EntityFrameworkでのMySQLの使用