新聞中心
在MyBatis中執(zhí)行存儲(chǔ)過(guò)程,可以通過(guò)以下步驟進(jìn)行:

創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)福安,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
1、定義存儲(chǔ)過(guò)程的映射語(yǔ)句
在MyBatis的映射文件中,使用、、或標(biāo)簽來(lái)定義存儲(chǔ)過(guò)程的映射語(yǔ)句,假設(shè)我們有一個(gè)名為get_user_by_id的存儲(chǔ)過(guò)程,可以這樣定義:
2、調(diào)用存儲(chǔ)過(guò)程
在MyBatis的接口(Mapper)中,定義一個(gè)與映射語(yǔ)句對(duì)應(yīng)的方法。
public interface UserMapper {
User getUserById(int id);
}
3、在業(yè)務(wù)層調(diào)用存儲(chǔ)過(guò)程
在業(yè)務(wù)層中,通過(guò)MyBatis的SqlSession對(duì)象調(diào)用存儲(chǔ)過(guò)程。
public class UserService {
public User getUserById(int id) {
try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.getUserById(id);
}
}
}
相關(guān)問(wèn)題與解答:
Q1: 如何在MyBatis中調(diào)用帶輸出參數(shù)的存儲(chǔ)過(guò)程?
A1: 在MyBatis的映射文件中,使用{參數(shù)名, mode=OUT, jdbcType=類型}的方式定義輸出參數(shù),假設(shè)我們有一個(gè)帶輸出參數(shù)的存儲(chǔ)過(guò)程get_user_count,可以這樣定義:
然后在接口和業(yè)務(wù)層中按照普通存儲(chǔ)過(guò)程的方式調(diào)用即可。
Q2: 如何在MyBatis中調(diào)用帶輸入輸出參數(shù)的存儲(chǔ)過(guò)程?
A2: 在MyBatis的映射文件中,使用{參數(shù)名, mode=INOUT, jdbcType=類型}的方式定義輸入輸出參數(shù),假設(shè)我們有一個(gè)帶輸入輸出參數(shù)的存儲(chǔ)過(guò)程update_user_name,可以這樣定義:
{call update_user_name({userId, mode=IN, jdbcType=INTEGER}, {userName, mode=INOUT, jdbcType=VARCHAR})}
然后在接口和業(yè)務(wù)層中按照普通存儲(chǔ)過(guò)程的方式調(diào)用即可。
分享標(biāo)題:mybatis如何執(zhí)行存儲(chǔ)過(guò)程
本文鏈接:http://www.5511xx.com/article/djgejde.html


咨詢
建站咨詢
