动态调用表名的例子:
<select id="getUser" resultType="java.util.Map" parameterType="java.lang.String" statementType="STATEMENT">
select
${columns}
from ${tableName}
where COMPANY_REMARK = ${company}
</select>
要实现动态调用表名和字段名,就不能使用预编译了,需添加statementType=“STATEMENT”
statementType:STATEMENT(非预编译),PREPARED(预编译)或CALLABLE中的任意一个,这就告诉 MyBatis 分别使用Statement,PreparedStatement或者CallableStatement。默认:PREPARED。
简单说就是一个是预编译的,一个是非预编译的。
如果你要动态传入字段名,表名之类的如果你的sql执行是预编译的,这显然
是不行的,所以你必须改成非预编译的
将传入的数据直接显示生成在sql中,对于字符串数据,需要手动加上引号。
在java代码中,声明的变量不加引号在sql中就会是下面这个格式:

相似问题可以参考,希望能帮到你
版权声明:本文为Marlboro8023原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。