mybatis的mapper.xml里动态的传入表名和字段值

 用${}引入参数

<select id="selectTccdByTime" resultType="java.lang.String" parameterType="java.lang.String" statementType="STATEMENT">
    SELECT id FROM ${param1} where EDITDATE = ${param2} and BATCH = ${param3}
</select>

注意${}花括号里面只能写数字0,1,2...或param1, param2...

接口的写法是这样的

    List<String> selectTccdByTime(@Param("tableName")String tableName, @Param("uploadTime")String uploadTime, @Param("batch")String batch);

还有一点值得注意的地方, ${}不会为引入的参数自动加引号, 所以可以用于当表名, 但作为字段值就相对麻烦, 你需要将实参先加上引号再传入, 比如这样:

String tableName = "SPC_TC_CD_"+param.getId();
int num = i + 1;
String batch = "'" + num + "'";
List<String> idList = quaParameterService.selectTccdByTime(tableName, uploadTime, batch);

细心的同学可能早就看到了, 在xml文件里写的statementType="STATEMENT"是啥意思啊, 这里就涉及到mybatis的一个重点内容了:

1、STATEMENT:直接操作sql,不进行预编译,获取数据:$—Statement 
2、PREPARED:预处理,参数,进行预编译,获取数据:#—–PreparedStatement:默认 
3、CALLABLE:执行存储过程————CallableStatement

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值