codecamp

HasorDB 存储过程调用

HasorDB 支持存储过程的调用。以 MySQL 为例,有下例存储。执行存储过程后会产生 ​1​ 个入参,​1​ 个出参,​2​ 个结果集

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;

执行存储过程,并接收所有返回的数据

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);

执行结果中获取输出参数的方式如下:

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

执行结果中分别获取两个 select 结果的方式如下:

// 第一个 select 的结果
List<Map<String, Object>> result1 = resultMap.get("#result-set-1");

// 第二个 select 的结果
List<Map<String, Object>> result2 = resultMap.get("#result-set-2");
提示
通过 ​jdbcTemplate.call​ 调用存储过程返回的结果集,只会以 ​List/Map ​形式返回。


HasorDB 批量操作SQL
HasorDB SQL多语句/多返回值
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }