一个请求
过来,系统从线程池
中分配一个可用的线程
来处理当前请求的逻辑。
即某一请求的生命周期时间内,一个线程只用来处理一个请求,处理完之后,还给线程池(【特别注意】该线程还在,没被销毁,等待分配给别的页面请求用)
一个请求
过来,系统从线程池
中分配一个可用的线程
来处理当前请求的逻辑。
即某一请求的生命周期时间内,一个线程只用来处理一个请求,处理完之后,还给线程池(【特别注意】该线程还在,没被销毁,等待分配给别的页面请求用)
工作中,经常会遇到很多批量操作的需求:批量添加、批量更新、批量删除、批量导入、批量审核等等,下面这篇文章我们将一一复现,首先我们先了解一下mybatis的标签foreach循环。
由于项目是使用MyBatis-Plus开发的,用起来也确实比较方便,尤其是service层封装好的一些通用的增删改查方法,省去了不少sql语句的书写,但是在开发过程中,我也发现MyBatis-Plus的saveBatch批量插入方法针对MySQL和Oracle数据库可能会出现效率贼低的情况
网上很多文章,都说MySQL驱动并没有实现"真正的"batchUpdate,执行的时候还是一条一条按顺序将SQL发送到MySQL服务器,其实这是错误的。
IService中自带的 saveBatch
和 saveOrUpdateBatch
等方法,仔细看会发现,他们的批量执行,竟然不是 真正的(数据库级别的)批量执行
大家已知MP给大家提供了很多通用的方法,可以看看MP源码中DefaultSqlInjector
这个类,在这个集合当中包含了都是通用方法类,如果想要使用自定义通用方法,也需要添加到这个集合当中。
用stream流 手动封装分页工具类
MyBatis-Plus为我们支持了许多种的主键策略,主键策略是指MyBatis-Plus可以自动生成主键的策略,不需要手动插入主键,MyBatis-Plus的主键策略帮我们自动生成主键
以MVC的entity或domain为例,这种只包含数据不包含逻辑业务的类就叫做贫血模型(Anemic Domain Model)。贫血模型将数据与操作分离,破坏了面向对象的封装特性,是一种典型的面向过程编程。