博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis批量增删改的另外一种思路(推荐)
阅读量:6405 次
发布时间:2019-06-23

本文共 1351 字,大约阅读时间需要 4 分钟。

零、传统拼接SQL语句的弊端

传统上利用Mybatis进行批量操作的方式本质来说是拼接SQL语句,然后交给底层执行,如之前博文而言。
其实这种方式是存在弊端的:
1. SQL语句可能会过长,DB的引擎可能不支持。
2. MyBatis拼接耗费资源不说还容易写错。

一、新思路

使用JDBC底层的batch进行批量操作
1. 先添加如下xml,注册一个batchSession
2. 使用注入
/** 注入批处理SqlSessionTemplate */    @Autowired    private SqlSessionTemplate batchSqlSessionTemplate;    //这里的Transactionl一定要加,底层实现是命中SQL和Statement,必须使用的是同一个Connection    /**     * 批量 insert     * @param models     * @return     */    @Transactional    public int batchcInsert(List
models){ int result = 0; BaseMapper
modelMapper = (BaseMapper
) batchSqlSessionTemplate.getMapper(mapperClass); for (Model model:models) { result += modelMapper.insert(model); } return result; } //这里的Transactionl一定要加,底层实现是命中SQL和Statement,必须使用的是同一个Connection /** * 批量update * @param models * @return */ @Transactional public int batchcUpdate(List
models){ BaseMapper
modelMapper = (BaseMapper
) batchSqlSessionTemplate.getMapper(mapperClass); int result = 0; for (Model model:models) { result += modelMapper.update(model); } return result; } // 批量删除delete

 

转载于:https://www.cnblogs.com/LiuChunfu/p/7141795.html

你可能感兴趣的文章
容器和虚拟机的区别
查看>>
Ubuntu在升级系统后进不了系统
查看>>
数据结构课程笔记_拓扑排序
查看>>
recursive notes
查看>>
关于SWT/JFace的事件模型的四种方式
查看>>
基于asp.net mvc的近乎产品开发培训课程(第二讲)
查看>>
Android 画布绘图
查看>>
zoj1610 Count the Colors
查看>>
POJ Biorhythms解题
查看>>
图的储存方式——边的储存
查看>>
C# Socket编程 同步以及异步通信
查看>>
webService基础概念知识
查看>>
XMPP接受发送消息
查看>>
路飞学城-Python开发集训-第一章
查看>>
读《精进-如何成为一个很厉害的人》
查看>>
1077. 互评成绩计算 (20)
查看>>
JavaScript使用接口
查看>>
php 概率算法(转)
查看>>
如何到达永生?揭示科学之美
查看>>
“电梯演讲”最精炼、贴切的语言
查看>>