Springboot + MySQL+ JPA II save方法详解

2023-11-09

JPA没有专门的update接口,save接口同时支持update操作

一、save(单条添加)

Service层中添加save方法(save是三方件自带接口不需要再dao层中添加)

@Transactional
public User save(User user){
	return userDao.save(user);
}

control层

/**
 * 单条数据保存
 * @param id 自增的,可以不填
 * @param name
 * @param age
 * @return
 */
@GetMapping("/save")
public User save(Integer id,String name, Integer age){
	User user = new User();
	user.setId(id);
	user.setName(name);
	user.setAge(age);
	return userService.save(user);
}

测试成功!(id是主键自增的,可以不填)

 二、saveAll(批量添加)

 Service层中添加save方法(save是三方件自带接口不需要再dao层中添加)

@Transactional
public <S extends User> List<S> saveAll(Iterable<S> entities) {
	return userDao.saveAll(entities);
}

 control层

/**
 * 批量保存数据
 * @param names
 * @param ages
 * @return
 */
@GetMapping("/saveAll")
public List<User> saveAll(String[] names,Integer[] ages){
	List<User> list = new ArrayList<>();
	for(int i=0;i<names.length;i++){
		User user = new User();
		user.setName(names[i]);
		user.setAge(ages[i]);
		list.add(user);
	}
	return userService.saveAll(list);
}

测试成功!(id是主键自增的,可以不填)

 

最后小结:

传入参数中有id:

         判断id是否存在:

                a)如果id存在,则进行update操作

                b)如果id不存在,则新加的数据id为最后一个id+1(不管你写的id是多少)

                例:数据库中最后一个id为10,你加的id是20,最后加入数据库的id还是11(不是20)

传入参数没有id:

        直接在数据库中最后添加数据,id为最后数据的id+1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot + MySQL+ JPA II save方法详解 的相关文章

  • Android Studio 与 Google Play 服务的编译问题

    我正在运行 Android Studio 0 8 4 并在 Android Studio 0 8 2 上尝试过此操作 我正在运行 Java JDK 1 8 0 11 并尝试使用 JDK 1 8 0 05 每当我尝试构建我的 android
  • 存储过程函数中的动态表名

    我编写了一个存储过程函数来从表中获取名称 问题是我希望将表名作为参数传入 有几个不同的表我需要使用此函数 DELIMITER CREATE DEFINER root localhost FUNCTION getName tableName
  • 重复键错误不会取消/回滚mysql事务

    当在 mysql innodb 事务中时 我希望重复的键错误会导致回滚 它没有 相反 它只是抛出一个错误并继续执行下一个命令 一旦到达 COMMIT 命令 事务将被提交 没有重复键导致命令 这是预期的行为吗 如果是这样 如何设置它以便在发生
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 在 doxygen 中使用 @see 或 @link

    我之前用 Javadoc 记录并使用了标签 see link or see foo and link foo 在我的描述中链接到其他课程 现在我尝试了doxygen 似乎这些标签不兼容 如果我运行 doxygen 完整的标签将被简单地解释为
  • 是否可以创建 Java RAM 磁盘以与 java.io.* API 一起使用?

    我正在使用一个第三方库 它基本上创建一个输出目录 其中包含不同类型的文件和子目录 我希望能够编写单元测试来确认输出正确 我希望能够将库与 RAM 磁盘一起使用 这样库所做的任何事情都不会以任何方式接触实际的磁盘板 这个想法是让测试运行和清理
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 始终将双精度舍入

    我怎么总是能把一个double to an int 并且永远不要将其四舍五入 我知道Math round double 但我希望它始终向上舍入 所以如果是的话3 2 四舍五入为 4 您可以使用Math ceil method 请参阅Java
  • React Native v0.71.8 React-native-vector-icons 你看不到的图标

    我在用react native版本v0 71 8 我安装了react native vector icons库 但图标未显示 似乎链接在最新版本的 React Native 中不再起作用 所以我按照说明进行操作 但它不再编译 出现以下错误
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • Spring Security 角色层次结构不适用于 Thymeleaf sec:authorize

    我正在使用 Spring Security 3 2 5 RELEASE 和 ThymeLeaf 2 1 4 RELEASE 我已经在安全上下文中定义了角色层次结构 在我的视图层中我正在使用sec authorize属性来定义菜单项 我希望看
  • 在 Eclipse RCP 应用程序中禁用插件贡献

    我经常遇到这个问题 但尚未找到解决方案 每当我编写一个新的基于 Eclipse RCP 的应用程序并包含来自 Eclipse 平台的插件时 我都会 继承 其中一些插件的 UI 贡献 大多数贡献 菜单项 键盘快捷键 属性页 都很有用 但有时我
  • 如何在 JASPIC 中保存经过身份验证的用户?

    我开发了一个安全认证模块 SAM 并实现了validateRequest方法 我还有一个简单的 Web 应用程序配置为使用此 SAM In my validateRequest方法 我检查 clientSubject 并设置一个Caller
  • 在 Kotlin 中声明静态属性?

    My Java code public class Common public static ModelPengguna currentModelPengguna public class Common companion object v
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 如果 Modelmapper 中的整个属性为空,如何排除它们

    ModelMapper 是否 http modelmapper org http modelmapper org 支持什么排除属性 如果该值为空 我刚刚找到了 PropertyMap 但这对我来说是一种限制 因为我必须描述我想要的特定属性
  • Spring 如何在运行时获取有关“强类型集合”的泛型类型信息?

    我在 Spring 3 0 文档中阅读了以下内容 强类型集合 仅限 Java 5 在 Java 5 及更高版本中 您可以使用强类型集合 使用泛型类型 也就是说 可以声明一个 Collection 类型 使其只能包含 String 元素 例如
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • FragmentMap + ActionBar 选项卡

    我一直在尝试插入一个MapView进入一个ActionBar Tab 但我什至无法解决问题 即使谷歌搜索 这是主要活动 Override public void onCreate Bundle savedInstanceState supe

随机推荐

  • 51单片机c语言随机函数,[转载]51单片机中生成随机数

    随机数在单片机的应用中也是很多的 当然产生随机数的方法有很多 当中有一个就是利用单片机定时器 取出未知的定时器THX和TLX的值 再加以运算得到一个规定范围内的随机数值 这做法也是可行的 或者预先写好一个随机数表 然后进行取数据 也是可以的
  • Web开发文稿

    前言 首先 目前主流开发工具有很多 而且更新迭代的速度非常迅速 所以这里只谈一些基础的概念 如前后端的交互到底是怎么交互的 这也是我在学习网页开发的很困惑的东西 一 我的开发工具 网页界面 html css 浏览器脚本 js 服务器脚本 p
  • android studio全局搜索 快捷键

    全局搜索 gt 项目下的APP目录 gt 右键 gt Find in path 快捷键 Ctrl h
  • 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告

    版权声明 本文为博主原创文章 如需转载 请写明出处 尊重他人即尊重自己 http blog csdn net aubdiy article details 68485336 IntelliJ IDEA 打开 mybatis 的 xml 文件
  • 每天一个shell小知识(case)

    Case语句 case 结构 例1 case Case语句主要适用于 某个变量存在多种取值 需要对其中的每一种取值分别执行不同的命令序列 这种情况和多分支if语句非常相似 只不过if要判断多个不同的条件而case语句只判断一个变量的不同取值
  • Go Casbin 编写 MySQL适配器

    在 Go Casbin 中使用 MySQL 作为策略存储是一种常见的方式 下面是一个简单的示例 演示了如何在 Go Casbin 中使用 MySQL 首先 我们需要导入 MySQL 驱动程序和 Casbin import github co
  • 网络编程之三

    代码1 chat tcp client1 c include header h int main int argc char argv int connfd 1 if 0 gt connfd socket AF INET SOCK STRE
  • Markdown 语法的简要规则

    Markdown 语法的简要规则 标题 标题是每篇文章都需要也是最常用的格式 在 Markdown 中 如果一段文字被定义为标题 只要在这段文字前加 号即可 一级标题 二级标题 三级标题 以此类推 总共六级标题 建议在 号后加一个空格 这是
  • tkinter:嵌套子窗口操作步骤

    tkinter 嵌套子窗口操作步骤 0 导入模块 import ctypes import tkinter as tk u32 ctypes windll user32 1 主窗口创建 a tk Tk 父窗口 a geometry 800x
  • 【Spark NLP】第 12 章:情感分析和情绪检测

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Python3中常用模块-sys模块

    目录 1 获取模块文档 1 1 使用sys doc 查看方法说明 1 2 使用dir函数获取模块中的所有属性和方法 1 3 使用help函数查看某个函数 2 模块常用方法 3 解析命令行参数 sys模块和os模块是Python系统相关工具集
  • git分支管理

    Create the branch on your local machine and switch in this branch git checkout b name of your new branch Push the branch
  • python 把数字写入文件

    初学python 还不是很了解 其实只要用str 将数字包住即可 如下 file write str 12
  • Apache CXF 在 WebLogic 9.2 上的问题定位分析及权宜之计

    Apache CXF 在 WebLogic 9 2 上的问题定位分析及权宜之计 本文关键词 技术 WebLogic Apache 中间件 http yulimin javaeye com blog 129015 同样的程序在 Tomcat
  • Ubuntu 安装配置Samba服务器

    一 描述 Samba文件服务器可以在网络上实现不同操作系统的文件共享 它可以让你从笔记本电脑访问你的桌面文件 并与Windows和macOS用户共享文件 Samba是通过Network LAN 局域网来实现的 二 安装 要安装Samba 我
  • 架构是什么

    是什么 架构是什么 众说纷纭 架构 Architecture 一词最早源自建筑学术语 后来才被计算机科学领域借用 以下是其在维基百科 Wikipedia 中的定义 架构是规划 设计和构建建筑及其物理结构的过程与产物 在计算机工程中 架构是描
  • 苏嵌嵌入式Linux实训 第2天

    今天是嵌入式学习的第二天 也是正式教学开始的第一天 全程由梁老师为我们讲解 由于仅仅是新手的接触 不懂的地方还有很多 有时甚至跟不上老师的节奏 当然这也需要我们课后的复习和总结 不断积累才能不断收获 1 课程内容 今天的课程主要是对嵌入式开
  • 删除当前目录下所有.py[cdo]文件的命令

    rm f py 命令会删除当前目录下所有的 py 文件 但不会删除包含这些文件的目录 这个命令并没有错误 但是如果你只希望删除当前目录下的 py 文件而不包括子目录中的文件 你可以使用 rm f py cdo 在解释这个命令之前 首先来了解
  • Ubuntu 下安装 QQ

    安装流程 一 QQ Linux版本下载 二 安装 一 QQ Linux版本下载 1 使用以下指令查看自己的 Ubuntu 版本的类型 uname a 可查看到我的 Ubuntu 版本为 x86 64的版本 因此可以点击此处链接前往 QQ 官
  • Springboot + MySQL+ JPA II save方法详解

    JPA没有专门的update接口 save接口同时支持update操作 一 save 单条添加 Service层中添加save方法 save是三方件自带接口不需要再dao层中添加 Transactional public User save