欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于mybatis調(diào)用存儲過程獲取返回值問題

 更新時間:2022年01月17日 11:03:21   作者:每天都要學(xué)一點(diǎn)  
這篇文章主要介紹了mybatis調(diào)用存儲過程獲取返回值問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

總體思路:map傳值

controller:

Map<String,Object> m=new HashMap<String,Object>();
        m.put("name", 'zs');
        m.put("password", '55555');
        cardservice.bindCard(m);
        JSONObject json=new JSONObject();
        //獲得返回值
        json.put("msg", m.get("msg"));
        json.put("result", m.get("result"));

service:

@Override
    public Object bindCard(Map<String,Object> m) {
        try {
            return cardMapper.bindCard(m);
        } catch (Exception e) {
            e.printStackTrace();
            return new HashMap<String,Object>();
        }
    }

mapper:

Object bindCard(Map<String, Object> map) throws Exception;


<select id="bindCard" parameterType="map" statementType="CALLABLE" resultType="java.lang.Object">
    <![CDATA[  
    {call P_CardBindIdCardNo(
    #{name,mode=IN,jdbcType=VARCHAR},
    #{password,mode=IN,jdbcType=VARCHAR},
    #{result,mode=OUT,jdbcType=BIT},
    #{msg,mode=OUT,jdbcType=VARCHAR}
    )} 
  ]]>
</select>

20180522另一種方法:

mapper:

List<Map<String, Object>> getAnswerByModulesId(@Param("modulesId")int modulesId,@Param("patientCode")String patientCode) throws Exception;
    <select id="getAnswerByModulesId" resultType="map" statementType="CALLABLE" >
        EXEC getAnswerByModulesId #{modulesId},#{patientCode}
    </select

service

List<Map<String, Object>> getQuestionAnswerByModulesId(int modulesId,String patientCode);

@Override
    public List<Map<String, Object>> getQuestionAnswerByModulesId(int modulesId,String patientCode) {
        try {
            return naireMapper.getAnswerByModulesId(modulesId,patientCode);
        } catch (Exception e) {
            logger.error("getQuestionByModulesId異常!",e);
            return new ArrayList<Map<String,Object>>();
        }
    }

controller

@RequestMapping(value = "/getQuestionAnswerByModulesId", method = RequestMethod.POST)
    @ResponseBody
    public JSONObject getQuestionAnswerByModulesId(HttpServletRequest req,int modulesId) {
        JSONObject json = new JSONObject();
        try {
            @SuppressWarnings("unchecked")
            Map<String,Object> map=(Map<String,Object>)req.getSession().getAttribute("user");
            List<Map<String, Object>> list = naireService.getQuestionAnswerByModulesId(modulesId,(String)map.get("PatientCode"));
            json.put("questionList", list);
            json.put("result", true);
            json.put("msg", "獲取相應(yīng)模塊成功!");
        } catch (Exception e) {
            json.put("result", false);
            json.put("msg", "獲取相應(yīng)模塊失??!");
            logger.error("getQuestionByModulesId異常!", e);
        }
        return json;
    }

20180810:

注意,切換數(shù)據(jù)源時,調(diào)用存儲過程時不能開啟事物,否則不能切換數(shù)據(jù)源

20181023

今天要獲得存儲過程的返回值,但不想用call方法感覺太麻煩,網(wǎng)上也沒找到資料,研究了一下可如此解決:

<select id="getUpdateHumanDisease" resultType="java.lang.String">
    declare @result varchar(50)
    exec updateHumanDisease #{0},#{1},#{2},@result output
    select @result
</select>

到此這篇關(guān)于mybatis調(diào)用存儲過程獲取返回值的文章就介紹到這了,更多相關(guān)mybatis獲取返回值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論