溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mybatis中怎么實(shí)現(xiàn)動態(tài)插入

發(fā)布時(shí)間:2021-06-22 17:06:09 來源:億速云 閱讀:454 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)mybatis中怎么實(shí)現(xiàn)動態(tài)插入,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

項(xiàng)目結(jié)構(gòu)如下:

mybatis中怎么實(shí)現(xiàn)動態(tài)插入

驗(yàn)證過程就不細(xì)說了,直接貼個(gè)驗(yàn)證成功的

service:

這里面的表名bc_role應(yīng)該通過對方傳過來(對方傳的是我們自定義的一個(gè)type,然后在第一張表中,把這個(gè)type和表名做一個(gè)映射,這樣不暴露真實(shí)的表名),拿到表名之后,再根據(jù)表名上第二個(gè)配置表中獲取都需要哪些字段要保存,如果獲取不到則是全部字段。邏輯是這個(gè)邏輯,我這主要是驗(yàn)證mybatis的動態(tài)插入驗(yàn)證,就把非關(guān)鍵部分寫死了。代碼如下,注意data中是即有value需要的參數(shù)也有整個(gè)sql,sql本身自己也是個(gè)參數(shù),然后他里面又用#{}去引用別的參數(shù)。

    public void dynamicInsert3() {
        Map<String,Object> data = new HashMap<>();
        data.put("ID",java.util.UUID.randomUUID().toString());
        data.put("CREATE_TIME",new Date());
        data.put("CREATOR","張三");
        data.put("DESCRIPTION","備注dynamicInsert3");
        data.put("IS_DELETE",1);
        data.put("NAME","角色名稱");
        data.put("STATUS",1);
        data.put("sql","insert into bc_role(ID,CREATE_TIME,CREATOR,DESCRIPTION,IS_DELETE,NAME,STATUS) values(#{ID},#{CREATE_TIME},#{CREATOR},#{DESCRIPTION},#{IS_DELETE},#{NAME},#{STATUS})");
        testMapper.dynamicInsert3(data);
    }

mapper.xml

<insert id="dynamicInsert3" parameterType="java.util.Map">
    ${sql}
</insert>

最后執(zhí)行測試

    @Test
    void dynamicInsert3() {
        testService.dynamicInsert3();
    }

結(jié)果如下,輸出的sql使用的是?,說明進(jìn)行了預(yù)編譯:

Preparing: insert into bc_role(ID,CREATE_TIME,CREATOR,DESCRIPTION,IS_DELETE,NAME,STATUS) values(?,?,?,?,?,?,?)
Parameters: 91094ee2-c524-469b-aece-acc316431df0(String), 2021-04-15 16:02:49.218(Timestamp), 張三(String), 備注dynamicInsert3(String), 1(Integer), 角色名稱(String), 1(Integer)

mybatis中怎么實(shí)現(xiàn)動態(tài)插入

mybatis中怎么實(shí)現(xiàn)動態(tài)插入

上述就是小編為大家分享的mybatis中怎么實(shí)現(xiàn)動態(tài)插入了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI