springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程/java动态调用oracle存储过程

科技资讯 投稿 17100 0 评论

springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程/java动态调用oracle存储过程

能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。

提高代码重用性:存储过程可以在多个应用程序中重复使用,减少代码编写的工作量和维护成本。

 

/**
* 以下是部分代码 * 传递指令代码和运行动作的序号,以及传递前台参数 * @param params * @return */ @PostMapping("/runProcedure" @ResponseBody String runProcedure(@RequestParam Map<String, Object> params{ JSONObject json=new JSONObject(; Map<String, Object> parameters = new HashMap<String, Object> (; String procedureName="P_CHECK_MATERIAL168"; //设置存储过程名称 procedureName=params.get("name".toString(; //动态获取存储过程名称 parameters.put("parameterName",procedureName; List<Map<String,Object>> Procedurelist=mobileService.getProcedureParameter(parameters; String sql="{call "+procedureName+"(" +getProcedureParameter(Procedurelist+"}"; Map<String, Object> sqlParams= new HashMap<String, Object> (; //sqlParams 必须要动态设置存储过程需要的参数及值内容,可能动态传递过来、取存储在数据库中的信息等,否则不能运行 Map<String, Object> runParams=getProcedureMap(Procedurelist,sqlParams; runParams.put("sql",sql; mobileService.autoProcedure(runParams;//自动带有返回的out值内容 json.put("result","OK"; return json.toJSONString(; }

编程笔记 » springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程/java动态调用oracle存储过程

赞同 (87) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽