(七)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.导入相关包,例如 ...
随机推荐
- SpringBoot-2.1.1系列二:使用websocket
1.什么是websocket? WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端. 2.为什么需要使用 ...
- Linux 学习笔记 6 搭建nginx 实现二级域名访问
前言 在前一节的内容里面,我们学习了如何使用yum 包管理工具来安装我们需要的软件,这节内容,通过搭建Nginx 反向代理服务器,以及学习服务的配置等内容. NGINX Nginx是一款轻量级的Web ...
- js以当前时间为基础,便捷获取时间(最近2天,最近1周,最近2周,最近1月,最近2月,最近半年,最近一年,本周,本月,本年)
在开发公司管理后台系统时,遇到了需要根据不同的时间段如"近一年.近半年.近三月.近一月.近一周"来获取并展示不同图表数据的需求,很是繁琐,项目开发周期又非常的短,自己想了一下,虽然 ...
- 256位AES加密和解密
/// <summary> /// 256位AES加密 /// </summary> /// <param name="toEncrypt">& ...
- <a>标签的href和onclick属性【转】
1链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接): 2假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行, ...
- java类中元素初始化顺序
结论:对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器. public class Test4 { @Tes ...
- numpy基本知识
"""np.arrayobject 数组或嵌套的数列dtype 数组元素的数据类型,可选copy 对象是否需要复制,可选order 创建数组的样式,C为行方向,F为列方向 ...
- struts2学习第一天
Stuts2是基于MVC设计模式成熟的Web应用框架.不仅仅是Struts1的下一个版本,是一个全新的Struts架构.由WebWork社区跟Strut社区联手打造的.(教程来自W3Cschool) ...
- Qt Installer Framework翻译(5-1)
创建离线安装程序 脱机安装程序在安装过程中根本不会尝试连接在线存储库.但是,元数据配置(config.xml)使用户可以在线添加和更新组件. 在公司防火墙不允许用户连接到Web服务器的情况下,脱机安装 ...
- CTF实验吧——证明自己吧
题目地址:http://www.shiyanbar.com/ctf/28 没有壳 ,vc++ 写的 拖进OD观察观察,发现代码很短哟,先来看这俩个call 怀疑他们其中有正确的flag和我们输入的东西 ...