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

MyBatis Mapping để tìm nạp danh sách các loại bản ghi tùy chỉnh trong Oracle

Thay đổi trình liên kết như sau

<resultMap type="detail" id="myResultMap"  >
        <result property="objectNamee" column="P_OBJECT_NAME" />
        <result property="objectStatus" column="p_object_status" />
</resultMap>

<select id="getLearnerMap" parameterType="spInOut" statementType="CALLABLE">

 {call p1.data_collection_append(#{objList, jdbcType=CURSOR, mode=OUT, resultMap=myResultMap, javaType=java.sql.ResultSet})}

</select>

tạo một kiểu trong SpInOut trong thư mục tên miền của bạn

public class SpInOut {

    private Object objList;
   //getter setting follows
}

Đây là một ví dụ đơn giản hoàn chỉnh

Phía DB

Tạo loại tùy chỉnh

PACKAGE KP_EMP_PCK AS

  type empType is ref cursor;

END KP_EMP_PCK;

Tạo một thủ tục được lưu trữ

create or replace PROCEDURE KPLISTEMP
( empList OUT kp_emp_pck.empType
) AS
BEGIN
  open empList for select empid, fname, lname,address from kpemployee order by fname;
END KPLISTEMP;

Bên Java

Tạo lớp miền

public class User {

    private String fName;
    private String company;
    private int age;
    private int salary;
    //getter Setter

}

Tạo miền cho SpInOut

public class SpInOut {

        private Object empList;
       //getter setting follows
    }

Giao diện người lập bản đồ

public interface EmployeeMapper {

    void getEmployees(SpInOut param);

}

Tệp xml ánh xạ

<mapper namespace="com.kp.swasthik.db.oracle.persistence.EmployeeMapper">

    <resultMap type="employee" id="empResultMap"  >
        <id property="empId" column="EMPID" />
        <result property="fName" column="FNAME" />
        <result property="lName" column="LNAME" />
        <result property="address" column="ADDRESS"  />
    </resultMap>

    <select id="getEmployees"  statementType="CALLABLE" parameterType="spInOut" >
        {call kplistemp(#{empList, jdbcType=CURSOR, mode=OUT, resultMap=empResultMap, javaType=java.sql.ResultSet})}
    </select>
</mapper>

Và cuối cùng là lớp dịch vụ

public class EmployeeServiceImpl implements EmployeeService {

    @Autowired
    EmployeeMapper mapper;

    @Override
    public List<Employee> getEmps() {
        try{
            SpInOut data= new SpInOut();
            mapper.getEmployees(data);
            return (List<Employee>) data.getEmpList();
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }

}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể sử dụng IF trong PL / SQL không?

  2. Nhập một lược đồ vào một lược đồ mới khác - Oracle

  3. java.lang.ArithmeticException khi cố gắng lấy kết nối trong Oracle 11.2.0.2.0 (64 bit)

  4. Tìm nạp dữ liệu từ SQL Server sang SqlDataReader hoạt động như thế nào?

  5. CHÈN câu lệnh CHỌN trong Oracle 11G