Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Gọi các thủ tục được lưu trữ của Oracle với MyBatis

Bản đồ kết quả trông như thế này:

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

Trong câu lệnh select của bạn, hãy thay đổi loại tham số thành 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>

Giao diện lập bản đồ của bạn trông như thế này, có vẻ như bạn hiện đang gọi đây là DAO. Cách mà tôi đã làm trước đây là tạo một giao diện ánh xạ được đưa vào DAO và DAO là thứ gọi các phương thức trên trình ánh xạ. Đây là một giao diện trình liên kết mẫu:

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

Sau đó, lớp ánh xạ đó sẽ được đưa vào một lớp DAO và thực hiện cuộc gọi như sau:

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. Trailing Zero

  2. Các khái niệm cơ bản của JDBC, Pooling và Threading

  3. Sử dụng bảng chuẩn hóa có thực sự tốt hơn không?

  4. No usename HR trong Oracle 12c

  5. Sự khác biệt giữa phép nối băm và phép nối hợp nhất (Oracle RDBMS) là gì?