参考博客:https://blog.csdn.net/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}'
的方式,否则也会报参数=?的异常
注:开发中遇到的坑,在此写以博客,仅用来防止日后再踩坑