广告
返回顶部
首页 > 资讯 > 精选 >如何在MyBatis中实现数据的批量新增和删除
  • 719
分享到

如何在MyBatis中实现数据的批量新增和删除

2023-06-06 12:06:21 719人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关如何在mybatis中实现数据的批量新增和删除,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。创建UserMapper接口(用户信息Mapper动态代理接口),实现用户信息

这期内容当中小编将会给大家带来有关如何在mybatis中实现数据的批量新增和删除,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创建UserMapper接口(用户信息Mapper动态代理接口),实现用户信息的批量新增、批量删除、批量查询。

package com.pjb.mapper; import com.pjb.entity.UserInfo;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import org.springframework.stereotype.Repository; import java.util.List; @Repositorypublic interface UserMapper{  @Insert({"<script>", "INSERT INTO tb_user(user_name,remark) VALUES", "<foreach collection='userInfoList' item='item' index='index' separator=','>",  "(#{item.userName},#{item.remark})", "</foreach>", "</script>"}) public int addUserBatch(@Param("userInfoList") List<UserInfo> userInfoList);   @Delete({"<script>", "DELETE FROM tb_user WHERE user_id IN", "<foreach item='id' index='index' collection='array' open='(' separator=',' close=')'>",  "#{id}", "</foreach>", "</script>"}) public int deleteUserBatch(int[] userIds);   @Select({"<script>", "SELECT * FROM tb_user WHERE user_id IN", "<foreach item='id' index='index' collection='array' open='(' separator=',' close=')'>",  "#{id}", "</foreach>", "</script>"}) public List<UserInfo> getUserBatch(int[] userIds);}

1、批量新增

@Autowiredprivate UserMapper userMapper; @Testpublic void addUserBatch(){ //创建新用户列表 List<UserInfo> userInfoList = new ArrayList<UserInfo>(); userInfoList.add(new UserInfo("pan_junbiao的博客_01","您好,欢迎访问 pan_junbiao的博客")); userInfoList.add(new UserInfo("pan_junbiao的博客_02","https://blog.csdn.net/pan_junbiao")); userInfoList.add(new UserInfo("pan_junbiao的博客_03","您好,欢迎访问 pan_junbiao的博客")); userInfoList.add(new UserInfo("pan_junbiao的博客_04","Https://blog.csdn.net/pan_junbiao")); userInfoList.add(new UserInfo("pan_junbiao的博客_05","您好,欢迎访问 pan_junbiao的博客"));  //执行批量新增操作 int count = userMapper.addUserBatch(userInfoList);  //打印结果 System.out.println("执行结果:成功新增" + count + "条数据!");}

执行结果:

如何在MyBatis中实现数据的批量新增和删除

2、批量查询

@Autowiredprivate UserMapper userMapper; @Testpublic void getUserBatch(){ //用户编号数组 int[] userIds = new int[]{1,2,3,4,5};  //执行批量获取操作 List<UserInfo> userInfoList = userMapper.getUserBatch(userIds);  //打印结果 userInfoList.stream().forEach(System.out::println);}

执行结果:

如何在MyBatis中实现数据的批量新增和删除

3、批量删除

@Autowiredprivate UserMapper userMapper; @Testpublic void deleteUserBatch(){ //用户编号数组 int[] userIds = new int[]{1,2,3,4,5};  //执行批量删除操作 int count = userMapper.deleteUserBatch(userIds);  //打印结果 System.out.println("执行结果:成功删除" + count + "条数据!");}

执行结果:

如何在MyBatis中实现数据的批量新增和删除

补充:Mybatis中的批量增加和批量删除,查询和更新

批量增加实例

<insert id="addRoleContent" parameterType="java.util.List"> <foreach collection="List" open="begin" close=";end;" item="item" separator=";"> INSERT INTO YIBO_SYS_CONTENT_ROLE (ROLE_ID,CONTENT_ID) VALUES (#{item.roleId,jdbcType=NUMERIC},#{item.contentId,jdbcType=VARCHAR}) </foreach> </insert>

foreach的主要用在构建in条件中,它可以在sql语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,

主要有一下3种情况:

如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array

如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在breast里面也 是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map 里面的key

这是一个带in的实例

 <select id="dynamicForeachTest" parameterType="java.util.List" resultType="Blog"> select * from t_blog where id in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item}  </foreach>  </select>

图一

如何在MyBatis中实现数据的批量新增和删除

图二

如何在MyBatis中实现数据的批量新增和删除

collection中的值要和注解一致或者和参数名一致。

查询

<select id="editRoleContent" parameterType="com.yibo.modules.datamanage.entity.RoleTieContent" resultType="com.yibo.modules.datamanage.entity.RoleTieContent"> select CONTENT_ID from YIBO_SYS_CONTENT_ROLE where ROLE_ID=#{roleId}</select>

每个属性含义

id 是dao层的方法名,parameterType传入的参数类型,resultType返回的参数类型,这里是传入RoleTieContent这个类,语句通过#{roleId}去查找RoleTieContent这个类中的属性roleId,赋值给where条件,查询结果返回给RoleTieContent这个类中的countentID属性。

通过调用dao层方法名(id),来实现sql增删改查。

多条件查询

if

choose (when, otherwise)

trim (where, set)

foreach

删除

 <delete id="deleteRoleContent" parameterType="java.util.List">  <foreach collection="List" open="begin" close=";end;" item="item" separator=";"> delete from YIBO_SYS_CONTENT_ROLE where ROLE_ID=#{item.roleId} and CONTENT_ID=#{item.contentId} </foreach> </delete>

上述就是小编为大家分享的如何在MyBatis中实现数据的批量新增和删除了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何在MyBatis中实现数据的批量新增和删除

本文链接: https://www.lsjlt.com/news/246849.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在MyBatis中实现数据的批量新增和删除
    这期内容当中小编将会给大家带来有关如何在MyBatis中实现数据的批量新增和删除,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。创建UserMapper接口(用户信息Mapper动态代理接口),实现用户信息...
    99+
    2023-06-06
  • MyBatis批量查询、插入、更新、删除如何实现
    今天小编给大家分享的是MyBatis批量查询、插入、更新、删除如何实现,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。1.批量查询提供两种方式。方式一,返回值: List<Cit...
    99+
    2023-07-06
  • python如何实现Mysql数据库批量新增数据
    本篇内容主要讲解“python如何实现Mysql数据库批量新增数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现Mysql数据库批量新增数据”吧!一、批量插入数据的场景在进行...
    99+
    2023-06-29
  • 数据库如何实现批量删除数据的操作方法
    这篇文章主要介绍数据库如何实现批量删除数据的操作方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!package com.mescs.baseinfo.utils; import ...
    99+
    2022-10-18
  • Oracle+mybatis如何实现对数据的增删改查功能
    这篇文章主要介绍了Oracle+mybatis如何实现对数据的增删改查功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是 MyBati...
    99+
    2022-10-18
  • MySQL数据中如何实现插入、更新与删除
    小编给大家分享一下MySQL数据中如何实现插入、更新与删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!案例:创建表books,...
    99+
    2022-10-18
  • HTML5中如何实现新增和移除的元素
    这篇文章主要介绍HTML5中如何实现新增和移除的元素,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!HTML经过10多年的发展,其元素经历了废弃与不断重新定义的过程。为了更好的处理现在...
    99+
    2022-10-19
  • 如何使用SQL语句在MySQL中更新和删除数据?
    如何使用SQL语句在MySQL中更新和删除数据?在MySQL数据库中,更新和删除数据是非常常见的操作。通过使用SQL语句,我们可以方便地更新和删除表中的数据。本文将介绍如何使用SQL语句在MySQL中更新和删除数据,并提供具体的代码示例。更...
    99+
    2023-12-17
    MySQL SQL语句 更新删除数据
  • MySQL中数据表如何实现数据插入、更新、删除操作
    小编给大家分享一下MySQL中数据表如何实现数据插入、更新、删除操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、插入数据 ...
    99+
    2022-10-18
  • 如何在阿里云数据库备份新实例中删除实例
    在阿里云数据库中,有时候我们会创建一个新的数据库备份实例,但是随着需求的变化,我们可能需要删除这个备份实例。本文将详细介绍如何在阿里云数据库备份新实例中删除实例。 登录阿里云控制台首先,我们需要登录阿里云控制台,这是进行任何操作的基础。在浏...
    99+
    2023-11-04
    实例 阿里 备份
  • 如何使用MongoDB实现数据的增加、修改、删除功能
    如何使用MongoDB实现数据的增加、修改、删除功能MongoDB是一种流行的开源NoSQL数据库,具有高性能、可伸缩性和灵活性。在使用MongoDB存储数据时,我们经常需要对数据进行增加、修改和删除操作。以下是使用MongoDB实现这些功...
    99+
    2023-10-22
    删除 MongoDB 修改 增加
  • 如何实现MySQL中删除数据的语句?
    如何实现MySQL中删除数据的语句?数据库管理系统中,删除数据是常见的操作之一。MySQL作为一款常用的关系型数据库管理系统,提供了简单且有效的删除数据的语句。在本文中,我们将讨论如何实现MySQL中删除数据的语句,包括具体的代码示例和一些...
    99+
    2023-11-08
    删除 数据 编程关键词:mySQL
  • MariaDB中如何实现数据的插入、修改和删除
    小编给大家分享一下MariaDB中如何实现数据的插入、修改和删除,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MariaDB数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB...
    99+
    2023-06-27
  • JavaWeb如何实现mysql数据库数据的添加和删除
    这篇文章主要为大家展示了“JavaWeb如何实现mysql数据库数据的添加和删除”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaWeb如何实现mysql数据库数据的添加和删除”这篇文章吧。...
    99+
    2023-06-29
  • 如何在MySQL中使用PHP实现数据的增删改查功能
    如何在MySQL中使用PHP实现数据的增删改查功能概要MySQL是一种开源的关系型数据库管理系统,而PHP是一种流行的服务器端脚本语言。结合使用MySQL和PHP,我们可以轻松实现数据库的增删改查功能。本文将向您介绍如何在MySQL中使用P...
    99+
    2023-10-22
    MySQL PHP 增删改查
  • 如何实现MySQL中删除数据库的语句?
    MySQL是一种常用的关系型数据库管理系统,它提供了许多操作数据库的SQL语句。其中,删除数据库的语句是经常用到的,本文将为大家介绍如何实现MySQL中删除数据库的语句,并提供具体的代码示例。删除空数据库首先,我们来介绍如何删除一个空数据库...
    99+
    2023-11-08
    删除 MySQL 数据库
  • 如何实现MySQL中删除多行数据的语句?
    如何实现MySQL中删除多行数据的语句?在MySQL中,删除多行数据是非常常见的数据库操作之一。当我们需要删除数据库表中的多行数据时,可以使用DELETE语句来实现。DELETE语句可以根据指定的条件删除符合条件的多行数据。下面将通...
    99+
    2023-11-08
    数据库 多行数据 删除语句
  • 如何实现Vue中数据的增删改查并结合对话框
    近年来,随着前端技术的不断发展,Vue已经成为了越来越多开发者选择的前端框架。其中,前端数据的增删改查是Web应用程序中最基础的功能之一。在Vue中,如何实现增删改查的同时跳出一个对话框呢?接下来,本文将为您介绍如何实现Vue中数据的增删改...
    99+
    2023-05-14
  • 如何使用MongoDB和SQL语句实现数据的增删改查操作?
    如何使用MongoDB和SQL语句实现数据的增删改查操作?数据库是存储、管理和检索数据的工具,而数据的增删改查操作是数据库的核心功能。在数据库领域中,常见的两种数据库系统是关系型数据库(SQL)和非关系型数据库(NoSQL)。关系型数据库使...
    99+
    2023-12-17
    SQL MongoDB 增删改查操作
  • 如何在Spring中使用MyBatis实现数据的读写分离
    如何在Spring中使用MyBatis实现数据的读写分离?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。其实现原理如下:通过Spring AOP对dao层接口进行...
    99+
    2023-05-31
    spring mybatis 读写分离
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作