mybatis根據傳入的表名實現增刪改查

這幾天在做開發的過程中,遇到一個問題,對數據進行CRUD操作時需要將表名傳入(分版本,表設計一樣,表名不同)。這樣比如我們要進行一個修改操作,就要傳入表名及修改的對象。一上來有點懵,不知從何處下手。於是翻了一下當初學習mybatis的筆記,自己根據經驗試了下,成功了,特做總結。

首先說一下$和#取變更的區別,簡單說就是$不能防止SQL注入,常用於取表名。#能防止SQL注入,原理的話就不在此處講了,想了解的小夥伴自行百度。知道這兩點以後,下面我們就直接上代碼了。

Mapper接口:

Integer edit(@Param("table")String table,EditDto editDto);

XML:

<update id="edit">
    update ${table} t
    set t.name = #{editDto.name},
        t.code = #{editDto.code}
    where t.id = #{editDto.id}
</update>

總結如下:需要幾個參數就傳幾個參數用$取表名,用#取對象值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章