HasorDB 存儲(chǔ)過程調(diào)用

2021-12-30 11:31 更新

HasorDB 支持存儲(chǔ)過程的調(diào)用。以 MySQL 為例,有下例存儲(chǔ)。執(zhí)行存儲(chǔ)過程后會(huì)產(chǎn)生 ?1? 個(gè)入?yún)ⅲ?1? 個(gè)出參,?2? 個(gè)結(jié)果集

drop procedure if exists proc_select_table;
create procedure proc_select_table(in userName varchar(200),
                                   out outName varchar(200))
begin
    select * from test_user where name = userName;
    select * from test_user;
    set outName = concat(userName,'-str');
end;

執(zhí)行存儲(chǔ)過程,并接收所有返回的數(shù)據(jù)

List<SqlParameter> parameters = new ArrayList<>();
parameters.add(SqlParameterUtils.withInput("dative", Types.VARCHAR));
parameters.add(SqlParameterUtils.withOutputName("outName", Types.VARCHAR));

String querySql = "{call proc_select_table(?,?)}";
Map<String, Object> result = jdbcTemplate.call(querySql, parameters);

執(zhí)行結(jié)果中獲取輸出參數(shù)的方式如下:

String outName = resultMap.get("outName");

執(zhí)行結(jié)果中分別獲取兩個(gè) select 結(jié)果的方式如下:

// 第一個(gè) select 的結(jié)果
List<Map<String, Object>> result1 = resultMap.get("#result-set-1");

// 第二個(gè) select 的結(jié)果
List<Map<String, Object>> result2 = resultMap.get("#result-set-2");
提示
通過 ?jdbcTemplate.call? 調(diào)用存儲(chǔ)過程返回的結(jié)果集,只會(huì)以 ?List/Map ?形式返回。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)