参考博客:https://blog.youkuaiyun.com/qq_25221835/article/details/86711987
参考代码:
写法一:
<select id="selectExamCfgById" resultMap="ExamCfgResult" statementType="STATEMENT">
select * from ${param1} where depcode = '${param2}'
</select>
注:表名也可以写成拼接的方式table_${参数名}等类似的形式
写法二:
<select id="selectExamCfgById" resultMap="ExamCfgResult">
select * from ${param1} where depcode = #{param2}
</select>
注:没有了statementType="STATEMENT"便可使用#{} 方式传参
关键:


这里表名传值方式必须使用${}这种方式,因为${}与#{}两种传值方式的区别简单来讲就是${}会给参数加上''单引号,如果使用#{tableName} 最后的sql语句边成了
select * from 'tableName' where 略
如果使用了statementType="STATEMENT",其后获取参数的方式参数就必须是在使用${}而非#{},其次,如果其他参数的传值如果也是使用${}方式,就必须使用'${param}'的方式,否则也会报参数=?的异常
注:开发中遇到的坑,在此写以博客,仅用来防止日后再踩坑
SQL查询参数传值陷阱:${}
3056

被折叠的 条评论
为什么被折叠?



