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

MyBatisを使用したOracleストアドプロシージャの呼び出し

    結果マップは次のようになります:

    <resultMap id="UserResult" type="User">
        <id property="userId" column="userId"/>
        <result property="firstName" column="firstName"/>
        <result property="lastName" column="lastName"/>     
    </resultMap>
    

    selectステートメントで、パラメーターのタイプをjava.util.Mapに変更します。

    <select id="getUsers" statementType="CALLABLE" parameterType="java.util.Map"> 
        {call GetUsers(#{users, jdbcType=CURSOR, javaType=java.sql.ResultSet, mode=OUT, resultMap=UserResult})} 
    </select>
    

    マッパーインターフェイスは次のようになります。現在、これをDAOと呼んでいるようです。私が過去にそれを行った方法は、DAOに注入されるマッパーインターフェイスを作成することであり、DAOはマッパーのメソッドを呼び出すものです。マッパーインターフェイスの例を次に示します。

    public interface UserMapper {
        public Object getUsers(Map<String, Object> params);
    }
    

    そのマッパークラスはDAOクラスに注入され、次のように呼び出します。

    public List<User> getUsers() {
        Map<String, Object> params = new HashMap<String, Object>(); 
        ResultSet rs = null;
        params.put("users", rs);
        userMapper.getUsers(params);
        return ((ArrayList<User>)params.get("users"));
    }
    


    1. 結合後のMySQLLimitLEFTJOINサブクエリ

    2. Oracleのテーブルから同じエリアの場所のすべてのペアを一覧表示するにはどうすればよいですか?

    3. 無視されるMysqlインデックス

    4. MSSQLServerデータベースでのインデックスの最適化の自動化