sql >> Databasteknik >  >> RDS >> Oracle

Anropar Oracles lagrade procedurer med MyBatis

Resultatkartan ser ut så här:

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

I din select-sats, ändra parametertypen till 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>

Ditt mappar-gränssnitt ser ut så här, det ser ut som att du för närvarande kallar detta DAO. Sättet jag har gjort det tidigare är att göra ett mappar-gränssnitt som injiceras i DAO och DAO är det som kallar metoderna på mapparen. Här är ett exempel på kartläggningsgränssnitt:

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

Den mapparklassen skulle sedan injiceras i en DAO-klass och ringa så här:

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. Hur skapar man en temporär tabell i en Oracle-databas?

  2. mysql uppdateringstabell ajax efter klass

  3. Skapa och ta bort en PostgreSQL-databas på Ubuntu 16.04

  4. mysql_num_rows() förväntar sig att parameter 1 är resurs, boolean ges i C:\wamp\www