Oracle
 sql >> база данни >  >> RDS >> Oracle

Извикване на съхранени процедури на Oracle с MyBatis

Картата на резултатите изглежда така:

<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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LISTAGG еквивалент с прозоречна клауза

  2. Oracle SQL - Как да извлечете най-високите 5 стойности на колона

  3. Как да запазите ГОЛЕМИ BLOB (>100MB) в Oracle с помощта на Hibernate

  4. Oracle 11 SQL:Разделете 1 ред на x реда и вмъкнете нова колона

  5. Oracle:Как ефективно да избирате редове с помощта на списък с ключове