Mybatis中運用小技巧(三)儲存過程的運用

death05發表於2016-07-22

儲存過程的建立

假設存在一張表:Follow(關注表),其表結構如下:

其中id需要是自增。
假設我們需要實現的儲存過程是能根據userId1和userId2的值選擇出一條記錄。
博主使用的是Navicat,因此建立儲存過程的步驟為:
1、點選“函式”:

2、點選“新建函式”:

3、選擇“過程”,點選“下一步”:

4、新建兩個引數,代表傳進去的兩個引數userId1和userId2的值,分別取名為a和b,點選完成:


5、將a、b兩個 變數重新命名為@userId1和@userId2,這是博主的習慣,大家也可以直接利用a、b,然後寫上語句即可:

6、儲存,命名為“proc_FollowByUserId1AndUserId2Select”,此處的命名規則可以參考我之前的寫的sql 儲存過程命名規範


專案中Mapper層的宣告

<span style="white-space:pre">	</span>/**
	 * 查詢兩人之間是否存在關注關係
	 * @param id
	 * @param id2
	 * @return
	 */
	Follow selectByUserId1AndUserId2(Integer id, Integer id2);

FollowMapper.xml中的寫法

  <resultMap id="BaseResultMap" type="cn.cslg.microblog.PO.Follow" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="userId1" property="userid1" jdbcType="INTEGER" />
    <result column="userId2" property="userid2" jdbcType="INTEGER" />
  </resultMap>
  
  <select id="selectByUserId1AndUserId2" resultMap="BaseResultMap">
    {call proc_FollowByUserId1AndUserId2Select(
    	#{0, jdbcType=INTEGER, mode=IN},	#{1, jdbcType=INTEGER, mode=IN})}
  </select>

這樣就是最簡單的在Mybatis中呼叫儲存過程的用例,這已經能解決一些簡單的開發中涉及的儲存過程的使用,希望大家能通過此能開始瞭解儲存過程的使用,至於更深層次的應用,博主同樣也是初學者,會在以後儘可能多的呈現。

相關文章