性欧美老肥妇喷水,熟女高潮久久久久久久1f,无码人妻精品中文字幕免费东京热,午夜人妻久久久久久久久

當(dāng)前位置:首頁 > 今日熱點(diǎn) > 民生資訊 > 正文

mybatis映射文件操作存儲過程的實(shí)現(xiàn)

2023-07-02 17:17:06    來源:腳本之家    


(相關(guān)資料圖)

先隨便創(chuàng)建一個存儲過程

DELIMITER $$
CREATE PROCEDURE
getUserNameById (IN i_id BIGINT, OUT o_name VARCHAR(10))
BEGIN
    SELECT u.name INTO o_name FROM tb_user u WHERE id = i_id;
END $$

delimiter $$ : 是將sql語句的結(jié)束符號先替換成$$的意思,因?yàn)閟ql是遇到;號加回車自動就直接執(zhí)行的
mybatis調(diào)用存儲過程

@Mapper
public interface UserMapper {

? ? void getUserNameById(UserDto userDto); ?// 注意沒有返回值
}




? ? 
@Test
void contextLoads() {
    UserDto userDto = new UserDto();
    userDto.setId(445225202303020001L);
    System.out.println(userDto);
    userMapper.getUserNameById(userDto);
    System.out.println(userDto);
    }

UserDto(id=445225202303020001, name=null, age=null, phone=null, email=null, password=null)
2023-03-12 23:37:42.354 INFO 4848 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
UserDto(id=445225202303020001, name=admin, age=null, phone=null, email=null, password=null)

這里需要注意就是
接口的方法沒有返回值

statementType=“CALLABLE”
jdbcType=VARCHAR

在mapper文件中可以使用statementType標(biāo)記使用什么的對象操作SQL語句。
statementType:標(biāo)記操作SQL的對象

取值說明:

1、STATEMENT:直接操作sql,不進(jìn)行預(yù)編譯,獲取數(shù)據(jù):$—Statement
2、PREPARED:預(yù)處理,參數(shù),進(jìn)行預(yù)編譯,獲取數(shù)據(jù):#—–PreparedStatement:默認(rèn)
3、CALLABLE:執(zhí)行存儲過程————CallableStatement

其中如果在文件中,取值不同,那么獲取參數(shù)的方式也不相同

注意:如果只為STATEMENT,那么sql就是直接進(jìn)行的字符串拼接,這樣如果為字符串需要加上引號,如果為PREPARED,是使用的參數(shù)替換,也就是索引占位符,我們的#會轉(zhuǎn)換為?再設(shè)置對應(yīng)的參數(shù)的值。

到此這篇關(guān)于mybatis映射文件操作存儲過程的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)mybatis映射文件操作存儲過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

關(guān)鍵詞:

上一篇:【全球快播報(bào)】沒有VAR導(dǎo)致進(jìn)球被忽視,蘇州東吳遭遇蘭帕德式門線冤案
下一篇:最后一頁