mybatis注解调用存储过程

Posted cnsdhzzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis注解调用存储过程相关的知识,希望对你有一定的参考价值。

mapper

  @SelectProvider(type = RoleMenuSqlProvider.class,method = "updateRoleMenuRelation")
  @Options(statementType = StatementType.CALLABLE)
  HashMap updateRoleMenuRelation(HashMap<String,Object> paramMap);
SqlProvider
public String updateRoleMenuRelation(HashMap<String,String> paramMap){
        StringBuilder sb=new StringBuilder();
        sb.append("CALL updateRole(#{id,jdbcType=VARCHAR,mode=IN},#{role_id,jdbcType=VARCHAR,mode=IN},#{menu_id,jdbcType=VARCHAR,mode=IN},#{create_time,jdbcType=VARCHAR,mode=IN},#{update_time,jdbcType=VARCHAR,mode=IN},#{stamp,jdbcType=VARCHAR,mode=IN},#{version,jdbcType=INTEGER,mode=IN},#{visit_plat,jdbcType=INTEGER,mode=IN},#{visit_type,jdbcType=INTEGER,mode=IN},#{note,jdbcType=VARCHAR,mode=IN},#{is_used,jdbcType=INTEGER,mode=IN},#{result,jdbcType=INTEGER,mode=OUT});");
        return sb.toString();
    }

调用

HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("id", UUID.randomUUID().toString().replace("-", ""));
paramMap.put("role_id", role_id);
paramMap.put("menu_id", obj[i]);
Date date=new Date();
paramMap.put("create_time", DateUtil.format(date, "yyyy-MM-dd HH:mm:dd"));
paramMap.put("update_time", String.valueOf(date.getTime()));
paramMap.put("stamp", stamp);
paramMap.put("version", version);
paramMap.put("visit_plat", visitPlat);
paramMap.put("visit_type", visitType);
paramMap.put("is_used", isUsed);
paramMap.put("note", note);
paramMap.put("result", null);

HashMap hashMap = roleMenuMapper.updateRoleMenuRelation(paramMap);
Integer resultNum += Integer.valueOf(hashMap.get("result").toString());

 

以上是关于mybatis注解调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 注解写法 多层嵌套foreach,调用存储过程,批量插入数据

mybatis 调用存储过程

mybatis 调用存储过程进行批量修改操作(只需要一次调用存储过程),不知道如何配置配置文件

mybatis调用视图和存储过程

MyBatis中调用存储过程和函数

MyBatis中调用存储过程和函数