不知道是不是Tk.Mapper的通病,我在用@Update注解进行批量更新的时候报了个错误,大概是说无法get到这个实体对象,初步认为是java数据类型和mysql不一致,mybatis映射没生效。
//代码大概如下
@Update(""
List batchUpdate(@Param("list") List id)
我查阅网上都是用这一套来进行批量update,但是出问题了,问题出在#预处理这里(加JdbcType也没用)
最后看到一个csdn博客说的很详细,有两种处理方式,一种是用$这个我试过了没效果,报了新的错误,而且$有SQL注入的风险。
第二种是用collection(用来标识对象)和index(索引)组合,通过索引来遍历list,即
#{list[${index}]}
最终完美解决问题
参阅博客:Mybatis框架:foreach循环遍历字段以及mybatis取值报错There is no getter for property named '__frch_item_0’问题的记录



