Spring Boot:利用JPA进行数据库的增改

news2024/11/29 11:54:45

目录

  • JPA介绍
  • Service接口
    • @Service和@Autowired
    • 示例代码
  • Dao数据库操作层
    • @Repository
    • 示例代码
  • 控制器文件
    • 示例代码-增加
    • 增加成功
    • 示例代码-修改
    • 修改成功

JPA介绍

  • JPA(Javaa Persistence API)一种用于持久化 Java 对象到关系型数据库的标准规范。它提供了一种统一的方式来操作数据库,包括增删改查等操作。

Service接口

  • Service 接口是一些方法,定义需要提供的服务方法和输入输出参数,以提供某种服务或功能。

@Service和@Autowired

  • @Service用于在类定义中标识服务类、在控制器中注入服务类。

  • 可以使用@Autowired 注解来注入新的类,以便调用它的方法。

示例代码

package hanshuhuan.test.service.admin;

import hanshuhuan.test.dao.admin.OperatorLogDao;
import hanshuhuan.test.entity.admin.OperaterLog;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 数据库操作service
 * @author shuhu
 *
 */
@Service
public class OperatorLogService {
	
	@Autowired
	private OperatorLogDao operatorLogDao;
	/**
	 * 添加/修改操作日志
	 * @param operaterLog
	 * @return
	 */
	public OperaterLog save(OperaterLog operaterLog){
		return operatorLogDao.save(operaterLog);
	}
}

Dao数据库操作层

  • Dao 数据库操作层负责与数据库进行交互并实现对数据库的增删改查等操作

@Repository

  • 用于标记一个类为数据访问层(DAO)的接口。
  • 它表示一个仓库,主要用于封装对于数据库的访问。
  • 当我们在一个接口上使用@Repository 注解时,Spring 会自动扫描并找到该接口的实现类,并将其实例化为一个 Bean。

示例代码

package hanshuhuan.test.dao.admin;
/**
 * 后台操作日志类数据库操作层
 */
import hanshuhuan.test.entity.admin.OperaterLog;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;


@Repository//表示这是一个Dao层,可以直接调用jpa来操作数据库
public interface OperatorLogDao extends JpaRepository<OperaterLog, Long> {
	
}

控制器文件

示例代码-增加

//List类型遍历
List<OperaterLog>operaterLogs=new ArrayList<OperaterLog>();
OperaterLog ol1=new OperaterLog();
ol1.setOperator("han");
ol1.setContent("text1");
ol1.setCreateTime(new Date());
ol1.setUpdateTime(new Date());
operaterLogs.add(ol1);

OperaterLog ol2=new OperaterLog();
ol2.setOperator("shu");
ol2.setContent("text2");
ol2.setCreateTime(new Date());
ol2.setUpdateTime(new Date());
operaterLogs.add(ol2);	

OperaterLog ol3=new OperaterLog();
ol3.setOperator("huan");
ol3.setContent("text3");
ol3.setCreateTime(new Date());
ol3.setUpdateTime(new Date());
operaterLogs.add(ol3);	

//数据库操作
OperaterLog operaterLog=new OperaterLog();
operaterLog.setOperator("shuhuan");
operaterLog.setContent("play");
operaterLog.setCreateTime(new Date());
operaterLog.setUpdateTime(new Date());

operatorlogservice.save(operaterLog);
operatorlogservice.save(ol1);
operatorlogservice.save(ol2);
operatorlogservice.save(ol3);

增加成功

在这里插入图片描述

示例代码-修改

operaterLog.setId(Long.valueOf(1));
operaterLog.setOperator("【hanshuh】");

修改成功

在这里插入图片描述

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

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

相关文章

LeetCode每日一题:2136. 全部开花的最早一天(2023.9.30 C++)

目录 2136. 全部开花的最早一天 题目描述&#xff1a; 实现代码与解析&#xff1a; 贪心 原理思路&#xff1a; 2136. 全部开花的最早一天 题目描述&#xff1a; 你有 n 枚花的种子。每枚种子必须先种下&#xff0c;才能开始生长、开花。播种需要时间&#xff0c;种子的生…

基于Java实现的社区团购系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统功能具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域…

MySQL 通过存储过程高效插入100w条数据

目录 一、前言二、创建表三、编写存储过程插入数据四、高效插入数据方案4.1、插入数据时删除表中全部索引4.2、存储过程中使用统一事务插入&#xff08;性能显著提升&#xff09;4.3、调整MySQL系统配置&#xff08;性能显著提升&#xff0c;适合存储过程没有使用统一事务&…

云计算安全:保护你的数据免受黑客侵害

文章目录 云计算的崛起云计算安全的挑战1. 数据隐私2. 身份认证和访问控制3. 网络安全4. 云供应商安全 云计算安全的最佳实践1. 数据加密2. 强身份认证3. 访问控制4. 安全审计5. 更新和漏洞管理6. 培训和教育 云计算安全的未来1. 量子安全性2. 人工智能和机器学习3. 边缘计算安…

邮戳锁StampedLock

一、是什么 二、邮戳锁由锁饥饿问题引出 StampedLock类的乐观读锁闪亮登场&#xff0c;通过版本号控制 三、邮戳锁特点与缺点 StampedLock不可重入

26947-2011 手动托盘搬运车 学习记录

声明 本文是学习GB-T 26947-2011 手动托盘搬运车. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了手动托盘搬运车(以下简称托盘车)的结构参数、技术要求、试验方法、检验规则、 标志、包装、运输和贮存。 本标准适用于额定载荷…

数据仓库与数据挖掘(1)概述

一、数据仓库和数据挖掘概述 1.1 数据仓库的产生 数据仓库与数据挖掘&#xff1a; 数据仓库和联机分析处理技术(存储)。数据挖掘&#xff1a;在大量的数据中心挖掘感兴趣的知识、规则、规律、模式、约束(分析)。数据仓库用于决策分析&#xff1a; 数据仓库&#xff1a;是在数…

毛玻璃态登录表单

效果展示 页面结构组成 通过上述的效果展示可以看出如下几个效果 底部背景有三个色块并且效果是毛玻璃效果登录表单是毛玻璃效果登录表单的周围的小方块也是有毛玻璃效果并且与登录表单有层次效果 CSS3 知识点 filter 属性backdrop-filter 属性绝对定位属性动画属性 底部背…

CISSP学习笔记:密码学与对称加密算法

第六章 密码学与对称加密算法 6.1 密码学历史上的里程碑 6.1.1 凯撒密码 简单的将字母表中的每个字母替换成其后的三个字母&#xff0c;是单一字母的替代置换密码 6.1.2 美国内战 美国内战使用词汇替代和置换的复杂组合&#xff0c;从而试图破坏敌人的破译企图 6.1.3 Ult…

MySQL 用户权限和远程访问设置

目录 一、用户操作查看当前拥有用户创建用户修改用户密码删除用户给root用户开放外网访问 二、用户权限操作授予权限的原则查看授予用户的权限给用户添加权限回收权限 一、用户操作 先要使用root用户登录MySQL后在执行后面操作 查看当前拥有用户 SELECT host,user,Grant_pri…

结构型设计模式——外观模式

摘要 本文主要分析设计模式 - 结构型 - 外观(Facade)&#xff0c;它提供了一个统一的接口&#xff0c;用来访问子系统中的一群接口&#xff0c;从而让子系统更容易使用。 一、外观模式的意图 提供了一个统一的接口&#xff0c;用来访问子系统中的一群接口&#xff0c;从而让…

记录 ubuntu 修改用户/root 密码步骤

1、普通用户修改密码方法 a&#xff09;启动 Ubuntu&#xff0c;随即长按 shift 进入 grub 菜单 b&#xff09;选择 Advanced options for ubuntu&#xff0c;即高级设置 c&#xff09;选择 recovery mode&#xff0c;回车确认,如下图&#xff1b; d&#xff09;在 Recovery…

力扣用队列实现栈

自己写的栈&#xff0c;再让其他函数去调用自己写的栈 typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;//单链表QDataType data;//放数据 }QNode;typedef struct Queue {QNode* phead;//头节点QNode* ptail;//尾节点QDataType size; //统计有多少节…

使用Qt验证RGB格式

下面我们用不同的颜色来绘制一块矩形区域&#xff0c;来对比学习RGB颜色。 一片漆黑的黑色 黑色在RGB中是三个颜色分量都是0。也就是没有颜色。 下面我们绘制一个水平100个像素&#xff0c;垂直200个像素的矩形区域&#xff0c;颜色设置为黑色。 #ifndef MAINWINDOW_H #def…

【NLP的python库(03/4) 】: 全面概述

一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始&#xff0c;到句法分析、解析文本并分配句法角色&#xff0c;再到语义处理&#xff0c;例如识别命名实体、情感分析和文档分类&#xff0c;一切都由至少一个库提供。那么&#xff0c;你…

【小笔记】从算法训练现象分析可能的参数设置问题-loss分析篇

【学而不思则罔&#xff0c;思而不学则殆】 9.30 首先给出一个理想的训练loss收敛图片&#xff1a;loss平滑的下降&#xff0c;并逐渐收敛到0. 平滑说明学习率设置较合适&#xff0c;收敛到0说明模型在参数空间中收敛到一个很理想的区域。 1.训练集的loss已经开始收敛了&…

Spring Boot的自动装配中的@ConditionalOnBean条件装配注解在Spring启动过程中,是如何保证处理顺序靠后的

前言 为什么Spring Boot条件注解那么多&#xff0c;而标题中是ConditionalOnBean呢&#xff1f; 因为&#xff0c;相比之下我们用的比较多的条件装配注解也就是ConditionalOnClass、ConditionalOnBean了&#xff0c;而ConditionalOnClass对顺序并不敏感&#xff08;说白了就是判…

蓝牙智能音箱采用哪些音频功放芯片

目前&#xff0c;无线蓝牙智能音箱越来越受广大用户的欢迎&#xff1b;比如点播歌曲、上网购物&#xff0c;或是了解天气预报&#xff0c;它也可以对智能家居设备进行控制&#xff0c;比如打开窗帘、设置冰箱温度、提前让热水器升温等。 而功放芯片是音箱中至关重要的组成部分…

分布式事务-TCC案例分析流程图

防止cancel方法在最后执行出现问题&#xff0c;用户收到提示已经退款成功但是由于cancel过慢或者出现问题&#xff08;虽然最后会重试成功但是用户体验很差&#xff09;&#xff0c;可以做以下的业务sql模型优化(增加一个冻结金额)。

Arcgis克里金插值报错:ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。

Arcgis克里金插值报错&#xff1a;ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。 问题描述&#xff1a; 原因&#xff1a; shape文件的问题&#xff0c;此图可以看出&#xff0c;待插值的点有好几个都超出了地理范围之外&#xff0c;这个不知道是坐标系配准的问…