mybaits使用provider处理批量sql

来源:互联网 发布:谁人知我心可 编辑:程序博客网 时间:2024/05/18 22:44

由于我用springcloud和mybatis集成,前期就是不想写一堆xml文件,所有的操作都是通过注解完成的。

功能实现后考虑到以后如果有批处理的sql怎么办,瞬间懵逼。

然后找到一种解决方案,使用MessageFormate进行预处理,具体代码如下。

    public String insertHolidays(Map map) {        List<Holidays> list = (List<Holidays>)map.get("list");        StringBuilder sb = new StringBuilder("insert into holidays (id,date,millisecond) values ");        MessageFormat messageFormat = new MessageFormat("(null, #'{'list[{0}].date}, #'{'list[{0}].millisecond})");        for (int i = 0; i < list.size(); i++) {            sb.append(messageFormat.format(new Object[]{i + ""}));            if (i < list.size() - 1) {                sb.append(",");            }        }        return sb.toString();    }

通过mapper的interface传参数,list需要通过map获取,单个对象可以直接传直接获取。


然后我想用这种方式实现批量update,试验了很多次懵逼,过了几天找到一个解决办法

在mysql的url中加上一个参数allowMultiQueries=true,这个参数允许一次执行多个sql哟。

所以到这里解决了provider批处理问题。

还是想知道上一种方式怎么批量update。




原创粉丝点击