(七)mybatis批量操作,分页插件
首先使用方式很简单:
SqlSession sqlSession = sessionFactory.openSession(ExecutorType.BATCH);
批量操作核心:改变执行sql的方式,改为BATCH
那么原因是什么呢?
首先普通方式是插入一条数据,就搭建一个sql语句,然后传入参数,执行sql,但是BATCH方式,预编译一次,我们将sql语句的框架先搭建好,之后每次执行的时候,只需要给里面填,并不需要再次搭建sql语句。
通过控制台日志输出也可以看的出来:
这是BATCH方式的批量插入的:
EBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - Committing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@52851b44]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@52851b44]
DEBUG [main] - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@52851b44]
DEBUG [main] - Returned connection to pool. Process finished with exit code
这是不使用BATCH
EBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - ==> Preparing: insert into student ( name, loves ) values ( ?, ? )
DEBUG [main] - ==> Parameters: 温鸿飞(String), dsadsa(String)
DEBUG [main] - <== Updates:
DEBUG [main] - Committing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@1852a3ff]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@1852a3ff]
DEBUG [main] - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@1852a3ff]
DEBUG [main] - Returned connection to pool. Process finished with exit code
可以看到预编译了很多次。
分页插件:PageHelper,
很简单,下载jar包或者在maven之中直接导入,
查询时加入这句话,
PageHelper.startPage(pageNum,pageSize);
之后正常查询,就会返回相应页数的信息,当然还有其他很多细节的,看官网就行:https://pagehelper.github.io/docs/howtouse/
常用这两种:
1.比如获取当前页,总数据量,总页码等,
获取PageHelper.startPage(pageNum,pageSize); 的返回值,Page<Object> 之后通过各种get方法即可获取,
2.当然也可以获取第一页,最后一页,使用pageinfo
PageInfo<classname> xx = new PageInfo<>(list);
(七)mybatis批量操作,分页插件的更多相关文章
- Mybatis的分页插件PageHelper
Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschina. ...
- Mybatis 的分页插件PageHelper-4.1.1的使用
Mybatis 的分页插件 PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschin ...
- SpringBoot集成MyBatis的分页插件 PageHelper
首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...
- Mybatis之分页插件pagehelper的简单使用
最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...
- spring boot(二)整合mybatis plus+ 分页插件 + 代码生成
先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...
- 理解 Mybatis的分页插件 PageHelper
Mybatis + SpringMVC + Maven实现分页查询 (推荐采用的插件是PageHelper) 先看一下之前的这篇博客,这里推荐了 Mybatis 的分页方法. 按照上面的方法设置后,确 ...
- 利用mybatis的分页插件实现商品列表的显示
分析思路: 当我们点击查询商品的时候,会出现商品的列表,并按上下页可以实现分页的查询的功能. 首先首先我们先找到商品查询商品的按钮在jsp的那个页面,即首页index.jsp 这里有个url即显示商品 ...
- mybatis的分页插件使用方法
1.下载所需要的jar包,如果使用maven可以在maven中添加依赖: 插件的实现原理: 如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的j ...
- mybatis pagehelper分页插件使用
使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化.缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分 ...
- Mybatis的分页插件PageHelper分页失效的原因
引用博客:个人博客地址:https://alexaccele.github.io/ PageHelper是Mybatis的一个很好的分页插件,但要使用它的分页功能需要注意一下几点 1.导入相关包,例如 ...
随机推荐
- sparkstreaming消费kafka后bulk到es
不使用es-hadoop的saveToES,与scala版本冲突问题太多.不使用bulkprocessor,异步提交,es容易oom,速度反而不快.使用BulkRequestBuilder同步提交. ...
- 【转】早该知道的7个JavaScript技巧
我写JAVAScript代码已经很久了,都记不起是什么年代开始的了.对于JavaScript这种语言近几年所取得的成就,我感到非常的兴奋:我很幸运也是这些成就的获益者.我写了不少的文章,章节,还有一本 ...
- 【转】基于ArcGIS for javascript api 轨迹回放
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 竹马竹马chikuma
[问题描述] 众所周知,zzh 和 heyi 是一对竹马竹马,他们从小一起学 C++,最后都成了著名的神犇.而时间回溯到他们童年,这天 zzh 邀请 heyi 来参加 zzh 举行的男性家庭聚会. 而 ...
- linux下文件解压缩中文乱码问题的解决
将带中文文件名的压缩文件上传到服务器,使用unzip解压后,文件名乱码: 临时解决方法: 通过unzip行命令解压,指定字符集unzip -O CP936 xxx.zip (用GBK, GB18030 ...
- cogs 826. [Tyvj Feb11] GF打dota 次短路详细原创讲解! dijkstra
826. [Tyvj Feb11] GF打dota ★★☆ 输入文件:dota.in 输出文件:dota.out 简单对比时间限制:1 s 内存限制:128 MB 众所周知,GF同学喜 ...
- CF - 高精度 + 贪心
Last year Bob earned by selling memory sticks. During each of n days of his work one of the two foll ...
- ThreadLocal终极篇
前言 在面试环节中,考察"ThreadLocal"也是面试官的家常便饭,所以对它理解透彻,是非常有必要的. 有些面试官会开门见山的提问: “知道ThreadLocal吗?” “讲讲 ...
- Java 1.7.0_06中String类内部实现的一些变化【转】
原文链接: java-performance 翻译: ImportNew.com- 夏千林译文链接: http://www.importnew.com/7656.html ChangeLog: 201 ...
- Android权限系统
Android系统为每个应用程序提供了一个安全的运行环境,不同程序间相互隔离,应用程序的数据等私有资源,外界无法访问.这个安全的运行环境由Android的权限系统(可称为沙箱系统)来提供.本文简单记录 ...