在 MyBatis 中使用存儲過程可以通過以下步驟實現:
定義存儲過程:首先在數據庫中定義存儲過程,可以使用 SQL 來創建存儲過程。
創建映射文件:在 MyBatis 的映射文件中定義存儲過程的調用方式,可以使用 <select>
, <insert>
, <update>
, <delete>
等標簽來調用存儲過程。
調用存儲過程:在 Java 代碼中通過 MyBatis 的 SqlSession 來調用定義好的存儲過程。
下面是一個示例代碼:
<!-- 定義存儲過程的映射文件 -->
<mapper namespace="com.example.ProcedureMapper">
<select id="callProcedure" statementType="CALLABLE">
{call my_procedure(#{param1, mode=IN, jdbcType=INTEGER}, #{param2, mode=OUT, jdbcType=INTEGER})}
</select>
</mapper>
// Java 代碼中調用存儲過程
SqlSession sqlSession = sqlSessionFactory.openSession();
ProcedureMapper mapper = sqlSession.getMapper(ProcedureMapper.class);
Map<String, Object> params = new HashMap<>();
params.put("param1", 123);
params.put("param2", null);
mapper.callProcedure(params);
Integer result = (Integer) params.get("param2");
System.out.println("Result from stored procedure: " + result);
sqlSession.close();
以上代碼中,首先在映射文件中定義了一個存儲過程的調用方式,并在 Java 代碼中通過 SqlSession 和 Mapper 來調用存儲過程,并獲取存儲過程的返回結果。