在最近的评论合作伙伴代码中,我发现了一个小问题。朋友实际上在for循环中执行了插入数据库。操作导致某些性能问题,简化了后代,如下所示:
这样做不会改变程序的最终执行结果,但会对程序的执行效率产生重大影响。就像您需要将10件从该地点发送到该地点B。您可以选择发送1件1次。发送10个计划;您也可以选择发送10并提供1个计划。您会选择哪一个?这是多个周期插入和批处理插入的问题。
PS:要插入的数据量越大,批次插入的时间越短(与循环多插入相比),优点越大。
在本文中,我们使用SaveBatch方法随附的Mybatis-Plus(以下称为MP)来实现数据的批处理插入函数,因为MP不是本文的焦点,因此我们不会在此处介绍它。如果您有不熟悉的朋友,您可以去找他去找他官方的自我制作补品:baomidou.com/guide/,让我们专注于MP的具体步骤以实现批处理插入。
首先,打开pom.xml文件,然后在文件中添加以下内容:
注意:mybatis-plus-latest-version代表MP框架的最新版本编号。上面的“ mybatis-plus-latest-version”替换为特定版本号,例如3.4.3,以正常介绍该框架。
可以省略此步骤,主要用于实施本文的功能。数据库和数据表的创建脚本如下:
①实体类首先创建与数据库相对应的用户物理类:
②控制器层代码的核心本文是使用MP框架中Iservice类提供的SaveBatch方法来实现批处理数据的插入函数,与控制器中的实现代码相对应如下:下面:下面:下面:
③服务层代码(焦点)接下来,我们要创建一个用户服务界面以继承MP框架中的iservice接口,并且实现代码如下:
然后创建一个实施类别的UserService:
PS:请注意,UserviceImpl必须在MP框架中继承ServiceImpl,否则必须重写许多方法。
④映射层代码映射层的实现相对简单。您只需要创建映射类别即可继承MP框架中的BaseMapper类。实施代码如下:
PS:BaseMapper为某个对象(类)提供了最基本的CRUD操作。
在本文中,我们介绍了在MP(Mybatis Plus)中实现批处理插入的具体实施步骤。它的核心是通过调用MP Iservice提供的SaveBatch方法来完成的,但是如果项目不引入MP框架,我该怎么办?我可以在使用MP后平坦吗?没有焦虑,我们将谈论另一种批处理方法插入(本地批处理插入的实现方法),以及两者之间的优势和缺点的分析。
作者:爪哇中国社区