使用mybatis批量插入数据

news2024/10/6 12:23:31

最近在做项目的时候,有些明细数据,一条一条的插入太费资源和时间,所以得需要批量插入,今晚闲来无事写个小demo。

新建工程

    <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

工程目录

在这里插入图片描述

application.properties配置

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dblog
spring.datasource.username=root
spring.datasource.password=666666
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:config/*Mapper.xml
mybatis.type-aliases-package=com.zy.entity

teacher表结构

在这里插入图片描述

mybatis语句

<insert id="insertTeacher">
        insert into teacher (name, age, sex) values
        <foreach collection="list" separator="," item="item">
            (#{item.name}, #{item.age}, #{item.sex})
        </foreach>
    </insert>

接口定义

@Repository
public interface TeacherMapper {
    public int insertTeacher(List<Teacher> teacher);
}

测试代码

@RestController
public class MybatisController {

    @Autowired
    public TeacherMapper teacherMapper;


    @GetMapping("teachers")
    public String teachers() {
        Long a = System.currentTimeMillis();
        for (int t=0;t<100;t++) {
            List<Teacher> teachers = new ArrayList<>();
            for (int n=0;n<1000;n++) {
                Teacher teacher = new Teacher();
                teacher.setName("李继"+t+""+n);
                teacher.setAge(35);
                teacher.setSex("男");
                teachers.add(teacher);
            }
            teacherMapper.insertTeacher(teachers);
        }
        long s = (System.currentTimeMillis()-a)/1000;
        System.out.println(s);
        return "success:"+s;
    }

}

启动类


@SpringBootApplication
@MapperScan(basePackages = "com.zy.dao", annotationClass = Repository.class)
public class MybatisDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisDemoApplication.class, args);
    }

}

测试结果

插入1万条数据用时1秒,插入10万条数据用时10秒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

歌曲推荐《最佳损友》

最佳损友 陈奕迅演唱歌曲 《最佳损友》是陈奕迅演唱的一首粤语歌曲&#xff0c;由黄伟文作词&#xff0c;Eric Kwok&#xff08;郭伟亮&#xff09;作曲。收录于专辑《Life Continues》中&#xff0c;发行于2006年6月15日。 2006年12月26日&#xff0c;该曲获得2006香港新城…

可视化工具之pyecharts

一、pyecharts基础 1、概述 Pyecharts是一款将python与echarts结合的强大的数据可视化工具。使用 pyecharts 可以生成独立的网页&#xff0c;也可以在 flask , Django 中集成使用。 echarts 是百度开源的一个数据可视化 JS 库&#xff0c;主要用于数据可视化。pyecharts 是一…

PyCharm控制台中英文显示切换

一开始全英环境下不适应安装了汉化包插件&#xff0c;使用后发现还是英文显示好使&#xff0c;现在切换回来。 要在 PyCharm 中将界面语言设置为英文&#xff0c;可以按照以下步骤操作&#xff1a; 打开 PyCharm&#xff0c;在主菜单中依次选择「File」、「Settings」。在「S…

App Inventor 2 列表选择框(ListPicker)用法示例

设置固定的列表项&#xff0c;设置“元素字串”属性&#xff0c;多个列表项使用英文逗号分隔&#xff1a; 点击效果如下&#xff1a; 选择完成后的事件处理&#xff0c;最终选中的数据通过“选中项”属性获取&#xff1a; 通过代码块动态设置列表选择框的列表项&#x…

【服务器 | 测试】如何在centos 7上面安装jmeter

安装之前需要几个环境&#xff0c;以下是列出的几个环境 CentOS 7.7 64位JDK 1.8JMeter 5.2 1. 下载jmeter安装包 JMeter是开源的工具&#xff0c;安装 JMeter 要先安装好 JDK 的环境&#xff0c;安装JDK在前面的文章已经讲到 JMeter最新版下载地址&#xff1a;Apache JMeter…

c#动态保留小数位数的数值格式化方法实例----从小数点后非零数字保留两位进行四舍五入

c#动态保留小数位数的数值格式化方法实例----从小数点后非零数字保留两位进行四舍五入 功能介绍代码案例输出结果封装扩展方法控制台调用 其他方法地址 功能介绍 1. 输入的数字是整数&#xff0c;则直接返回整数部分的字符串表示。 2. 如果输入的数字是小数&#xff0c;则执行…

百家宴焕新上市,持续深耕100-300元价位段

执笔 | 尼 奥 编辑 | 古利特 4月8日&#xff0c;长江酒道曾在《百家宴谋划“晋级”之路&#xff0c;多措并举切分宴席市场“蛋糕”》一文中提到&#xff1a;“百家宴主力新品即将登场&#xff0c;市场政策灵活焕新。” 如今&#xff0c;百家宴新品及市场新政&#xff0c;正…

计算机二级公共基础知识-2023

计算机基础知识&#xff1a; 计算机的发展&#xff1a; 第一台电子计算机eniac 埃尼阿克 1946 第一台存储程序计算机 edvac 艾迪瓦克 根据电子元器件的发展分类 1.电子管 2.晶体管 3.集成电路 4.超大规模继承电路 按照电脑的用途可以分为 专用计算机 专门用于处理…

vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享

VCOMP100.DLL 是由微软打造的动态链接库&#xff0c;它对于一些图形密集型应用&#xff0c;例如Photoshop&#xff0c;以及多款知名游戏如巫师3的运行至关重要。 如果操作系统在启动应用程序时无法找到此vcomp100.dll&#xff0c;则会出现vcomp100.dll丢失或未找到错误。 如果D…

Google 基于 GNN 开发气味识别 AI,工作量相当于人类评价员连续工作 70 年

内容一览&#xff1a;气味总是萦绕我们身边。然而&#xff0c;我们却很难对气味准确描述。最近&#xff0c;Google Research 的子公司 Osom 基于图神经网络&#xff0c;开发了气味分析 AI。它可以根据化学分子的结构&#xff0c;对分子的气味进行预测。基于这一 AI&#xff0c;…

2023年法国CAC40指数研究报告

第一章 指数概况 1.1 指数基本情况 CAC 40指数&#xff0c;全名 Cotation Assiste en Continu (意为“连续辅助报价”)&#xff0c;是法国巴黎股票交易所的标志性股票指数&#xff0c;与德国DAX指数及英国富时100指数并列为欧洲三大指数。自1987年12月31日成立以来&#xff0…

【Linux学习笔记】基础命令1

1. 什么是操作系统2. Linux基本指令2.1. ls指令2.2. pwd命令2.3. cd命令2.4. touch命令2.5. mkdir命令 1. 什么是操作系统 这里简单的讲述一下操作系统的概念&#xff0c;来看下图示&#xff1a; **操作系统是计算机系统中的一种软件&#xff0c;它负责管理计算机硬件资源和提…

CentOS 安装HTTP代理服务器 Tinyproxy

Tinyproxy是一个小型的基于GPL的HTTP/SSL代理程序&#xff0c;非常适合小型网络而且便于快速部署。这个代理程序最大的优点就是占用系统资源比较少。这里使用的系统为CentOS7.6&#xff0c;可以直接 yum 方式安装。 yum install tinyproxy -y 如果提示找不到安装包&#xff0…

中国各省市相关图标

中国各省市相关图标

buuctf crypto 【[GUET-CTF2019]BabyRSA】解题记录

1.打开文件 2.给出了pq以及&#xff08;p1&#xff09;*(q1),e&#xff0c;d&#xff0c;c&#xff0c;就可以得出结果了 import gmpy2 from Crypto.Util.number import long_to_bytes #pq用x表示 #(p1)(q1)用y表示 x 0x1232fecb92adead91613e7d9ae5e36fe6bb765317d6ed3…

Python爬虫基础(二):使用xpath与jsonpath解析爬取的数据

文章目录 系列文章索引一、使用xpath解析html文件1、浏览器安装xpath-healper&#xff08;1&#xff09;谷歌浏览器安装&#xff08;需要科学上网&#xff09;&#xff08;2&#xff09;验证&#xff08;3&#xff09;使用文件安装&#xff08;不需科学上网&#xff09; 2、安装…

2023年基因编辑行业研究报告

第一章 行业发展概况 1.1 定义 基因编辑&#xff08;Gene Editing&#xff09;&#xff0c;又称基因组编辑&#xff08;Genome Editing&#xff09;或基因组工程&#xff08;Genome Engineering&#xff09;&#xff0c;是一项精确的科学技术&#xff0c;可以对含有遗传信息的…

NotePad——xml格式化插件xml tools在线安装+离线安装

在使用NotePad时&#xff0c;在某些情形下&#xff0c;需要格式化Xml格式内容&#xff0c;可以使用Xml Tools插件。 一、在线安装 1. 打开Notepad 软件 2. 选择插件&#xff0c;选择“插件管理” 3. 搜索 XML Tools&#xff0c;找到该插件后&#xff0c;勾选该文件&#xff…

基于视觉重定位的室内AR导航APP的大创项目思路(3)手机相机内参数据获取和相机标定

文章目录 相机内参为什么要获取相机的内参数据&#xff1a;获取相机内存数据的方法棋盘格标定自动相机标定 前情提要&#xff1a; 是第一次做项目的小白&#xff0c;文章内的资料介绍如有错误&#xff0c;请多包含&#xff01; 相机内参 相机内参是本身的物理数据&#xff0c…

wireshark通常无法抓取交换机所有端口报文

Wireshark 是一种网络分析工具&#xff0c;它通常在计算机的网络接口上进行数据包捕获和分析。然而&#xff0c;Wireshark 默认情况下无法直接捕获交换机所有端口的报文。 交换机是一种网络设备&#xff0c;它在局域网内转发数据包&#xff0c;根据目的MAC地址将数据包仅发送到…