Mybatis 动态传如表名 字段名 的解决办法

要实现动态传入表名、列名,需要做如下修改

1.添加属性statementType="PREPARED"
2.同时sql里的属有表名变量取值都改成${xxxx},条件变量是#{xxx}
<delete id="deleteDataBaseTable" parameterType="java.util.List"  statementType="PREPARED" >
    "list" item="item" index="index" separator=";">
        delete from  ${item.tablename} where 1=1 and ${item.column_name} = #{item.columnvalue}
          
 delete>
  1. statementType:STATEMENT(非预编译),PREPARED(预编译)或CALLABLE中的任意一个,这就告诉 MyBatis 分别使用Statement,PreparedStatement或者CallableStatement。默认:PREPARED。
  Map<String,Object> sqlmap=new HashMap<String, Object>();
    sqlmap.put("tablename", tablename);
    sqlmap.put("column_name", column_name);
    sqlmap.put("columnvalue", map.get("aliasAccount").toString());

你可能感兴趣的:(xml)