这几天在做开发的过程中,遇到一个问题,对数据进行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>
总结如下:需要几个参数就传几个参数用$取表名,用#取对象值。