spring Boot学习日志(二)JPA操作Mysql

Spring Boot 中整合 MySQL 并打印 SQL 日志 在 Spring Boot 中整合 MySQL 并打印 SQL 日志,需通过配置数据源、JPA 及日志框架实现。通过以上配置,可清晰监控 Spring Boot 与 MySQL 的交互细节,适用于开发调试和性能分析。如需进一步定制,可参考。:通过日志分析慢查询,结合索引优化数据库性能。级别会记录参数绑定细节,可能影响性能。级别,防止敏感信息泄露。 阅读详情

Spring Boot学习日志(二)JPA操作Mysql


标签:

Spring Boot学习日志(二)JPA基本操作

什么是JPA

Jpa简单说就是一个ORM持久层框架,可以让开发人员一行sql不写,实现基本的增删改查操作。

导入依赖库

在新建项目时,勾选Web,JPA和Mysql(因为我使用的Mysql测试,所以也要用到Mysql的依赖)
这里写图片描述

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

数据库配置

#数据库类型
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#数据库链接地址
spring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&allowMultiQueries=true&&useSSL=false
#用户名
spring.datasource.username = root
#密码
spring.datasource.password = root
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

创建测试用到的表

CREATE TABLE `tb_user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

创建实体类

准备工作已经做完了,下面开始jpa相关的东西。
既然jpa是一个ORM框架,那么一定会有一个实体类和表对应。
新建UserEntity类

@Entity
@Table(name = "tb_user")
public class UserEntity {
    @Id
    @Column(name = "id")
    private Integer id;

    @Column(name = "username")
    private String username;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • @Entity 注解表示该类是一个实体类
  • @Table 用于设置该实体对应的表名称
  • @Id 用于标注该字段是主键
  • @Column 表示该字段为数据库一列

创建Jpa

创建一个名为UserJpa的接口,让它继承JpaRepository(SpringDataJPA简单数据操作接口)

public interface UserJpa extends JpaRepository<UserEntity,Long>,Serializable{
}
  • 1
  • 2

做完了这个操作,就可以通过UserJpa来操作数据库了。

操作数据库

先创建一个Controller作为入口来使用Jpa

@RequestMapping(value = "/user")
@RestController
public class UserController {
    @Autowired
    private UserJpa jpa;
    @RequestMapping(value = "/all")
    public List<UserEntity> getAllUser(){
        return jpa.findAll();
    }

    @RequestMapping(value = "/save")
    public UserEntity saveUser(UserEntity userEntity){
        return jpa.save(userEntity);
    }


    @RequestMapping(value = "/delete")
    public void deleteAll(UserEntity userEntity){
         jpa.delete(userEntity);
    }


}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

我们在使用Jpa的时候,不需要我们自己初始化,在声明jpa的地方加上@Autowired注解,这时候我们就可以使用他自带的方法了
如下

T save(T entity);//保存单个实体 
Iterable<T> save(Iterable<? extends T> entities);//保存集合 
T findOne(ID id);//根据id查找实体 
boolean exists(ID id);//根据id判断实体是否存在 
Iterable<T> findAll();//查询所有实体
long count();//查询实体数量 
void delete(ID id);//根据Id删除实体 
void delete(T entity);//删除一个实体 
void delete(Iterable<? extends T> entities);//删除一个实体的集合 
void deleteAll();//删除所有实体
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这里先使用简单的增|、删、改、查。

增加数据

    @RequestMapping(value = "/save")
    public UserEntity saveUser(UserEntity userEntity){
        return jpa.save(userEntity);
    }
  • 1
  • 2
  • 3
  • 4

jpa.save会将我们传进来的实体对象保存在数据库中,并将操作的结果返回给我们。
save

查询数据

    @RequestMapping(value = "/all")
    public List<UserEntity> getAllUser(){
        return jpa.findAll();
    }
  • 1
  • 2
  • 3
  • 4

使用findAll会得到一个list对象,通过Controller的RequestMapping注解访问这个方法会直接得到一个json对象。

查询

更新数据

更新数据和添加数据一样,都是使用jpa.save
如果该主键的数据不存在,会自动向数据库添加该数据,如果该主键已经存在,会根据该主键更新该数据其他字段。

删除数据


    @RequestMapping(value = "/delete")
    public void deleteAll(UserEntity userEntity){
         jpa.delete(userEntity);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

通过jap.delete会自动根据userEntity的主键删掉对应数据。

spring boot整合jpa构建微服务以及服务调用 一、Maven构建项目 1、访问http://start.spring.io/ 2、选择构建项目的基本信息,参考下图:   3、点击Generate Project下载项目压缩包 4、下载后解压到本地,并以Import -> Existing Maven Projects的方式,导入eclipse中 5、导入后,项目结构如下:   二、加入web,jpa依赖 阅读详情

相关推荐

spring-boot+jpa+mysql自动建表

1 搭建好spring-boot工程 pom.xml文件的主要依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...

weixin_41788067的博客 521

Springboot JPA日志打印SQL

Springboot JPA日志打印SQL 注意 test-key: JCccc-test-key-one 必须写

qq_41638872的博客 380

使用Spring Boot连接和操作数据库(MySQL、PostgreSQL等)

🏆 本文精选收录于《滚雪球学SpringBoot》专栏,专为零基础学习者量身打造。从Spring基础到项目实战,手把手带你掌握核心技术,助力你快速提升,迈向职场巅峰,开启财富自由之路🚀!无论你是刚入门的小白,还是已有基础的开发者,都能在这里找到适合自己的学习路径!    🌟 关注、收藏、订阅,持续更新中!和我们一起高速成长,突破自我!💡

**My Coding Family** 1945

Springboot+JPA打印SQL日志

Springboot+JPA打印SQL日志

一只没有脚的鸟 1万+

springboot+jpa+mysql+logback

maven+springboot+jpa+mysql+logback的简单框架。。。。。。。。。。

数据清洗(Data Cleansing)

数据清洗(Data Cleansing)是指对数据进行处理和纠错,以去除或修复数据集中存在的错误、不致、不完整和冗余的数据,从而使数据更加准确、可靠和有用。数据清洗是数据处理和数据分析中一个非常重要的步骤,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。数据清洗是一个重要的过程,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。在实际应用中,我们可以使用一些工具和技术来实现数据清洗,例如 Pandas、NumPy 和 OpenRefine 等。通过数据清洗,

meimei169500的博客 1万+

springboot JPA日志打印

这时去执行请求,后台就会打印sql,但是不会现实参数,如果需要现在参数需要再在application.yml中添加下面的配置。1、在springboot整合jpa后再配置文件applcation.yml的时候show-sql要设置为true。2、创建log4jdbc.log4j2.properties 配置文件,并添加以下内容。这时去执行请求,后台就会将参数和sql都打印出来,但是sql和参数是分开的。好了现在发送请求,在控制台上看到答应的sql了。下面我们让sql和参数合并在一起打印出来。

weixin_44740485的博客 3826

抖音最新风控体系研究

小编从技术角度对抖音的风控史和落地目标,跟大家聊一聊抖音,包括海外版抖音TikTok的现状与生态。 1、非常非常早的时期,抖音刚出来的时候,没有任何封禁,这个阶段,导入一个开发库,加上一个请求头,咵咵咵的数据随便拿。 2、2018-2019年,抖音加入了设备id和xg机制,在绝大多数的接口中,携带了设备id参数,同时在请求头中加入了xg,如今的apk市场,能追溯到的最早xg是0200打头的,而小编见过的最早的xg是0000打头的。这个时期的接口,这些参数都还只是预设,没有实际的用处,设备随便写,

qq517348412的博客 1万+

Spring Boot学习日志(二)JPA操作Mysql

Spring Boot学习日志(二)JPA基本操作 Spring Boot学习日志(一)Hello World Spring Boot学习日志(二)JPA操作Mysql Spring Boot学习日志(三)再谈Jpa Spring Boot学习日志(四)使用Mybatis Spring Boot学习日志(五)结合Swagger管理接口 什么是JPA Jpa简单说就是一个ORM持久层框架,...

踩坑记录 2733

Python实战:3步搞定视频去重,告别重复文件烦恼(附完整代码)

本文提供了一套基于Python的视频去重实战方案,通过三步流程(抽帧、生成内容指纹、相似度比对)高效识别重复视频文件。文章详细介绍了使用dHash算法生成视频指纹的核心原理,并提供了完整的代码实现,帮助用户快速构建自己的视频去重工具,告别重复文件管理烦恼。

weixin_29054245的博客 381

因时机器人-灵巧手配置方案(Ubuntu18.04)

因时机器人-灵巧手配置方案(Ubuntu18.04)

CH_monsy的博客 3848

Springboot JPA日志输出打印SQL语句和传入的参数 高阶篇

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。**

2301_82242670的博客 3269

同步整流buck电路图设计:手把手入门必看

从零开始拆解同步整流Buck电路图及其原理,手把手带你画出关键拓扑、选型MOSFET、分析续流路径。重点讲清占空比控制逻辑与体二极管导通损耗的规避方法,让buck电路图及其原理真正落地可调、稳定可靠。

weixin_33308579的博客 995

jpa mysql 中文_Spring Boot学习日志(二)JPA操作Mysql-Go语言中文社区

Spring Boot学习日志(二)JPA基本操作什么是JPAJpa简单说就是一个ORM持久层框架,可以让开发人员一行sql不写,实现基本的增删改查操作。导入依赖库在新建项目时,勾选Web,JPA和Mysql(因为我使用的Mysql测试,所以也要用到Mysql的依赖)org.springframework.bootspring-boot-starter-data-jpaorg.springfram...

weixin_39873177的博客 103

Context Capture10.20 安装教程(附安装包)

ContextCapture 是一款由Bentley公司推出的实景建模软件,可以快速为各种类型的基础设施项目生成最具挑战性的反应现实环境的三维模型。

一起来交流学习吧 2万+

OpenEuler22.04 快速部署Docker:华为云镜像源配置指南

本文详细介绍了在OpenEuler 22.04系统上快速部署Docker的完整流程。针对系统默认源版本老旧的问题,重点讲解了如何配置华为云镜像源以加速安装,并涵盖Docker引擎、Docker Compose的安装、服务启动验证、权限配置、镜像加速等核心步骤与常见问题排查,帮助用户高效搭建稳定的容器化开发环境。

http9protocoller的博客 174

spring boot 中使用 jpa以及jpa介绍

最近在项目中使用了一下jpa,发现还是挺好用的。这里就来讲一下jpa以及在spring boot中的使用。 在这里我们先来了解一下jpa。1.什么是jpa呢?JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 2.jpa具有什么优势?2.1标准化 JPA 是 JCP 组织发布的 Java

深存少年梦 28万+

(王道408考研操作系统)第一章计算机系统概述-第三节2:中断和异常

注意!!! 本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式 为了内容完整,部分内容会借用上述文章 文章目录一:中断和异常的基本概念(1)中断和异常的定义 一:中断和异常的基本概念 在操作系统引入核心态和用户态这两种工作状态后,就需要考虑两种状态之间是如何切换的。 操作系统内核工作在核心态,用户程序工作在用户态,系统不允许用户程序使用核心态的功能,但是用户程序为了完成某些操作又必须使用这些功能

快乐江湖的博客 3531

Spring Boot整合JPA实战:高效数据库操作指南

JPA(Java Persistence API)作为Java EE的标准规范,提供了一套面向对象的持久化方案,能够显著提升开发效率。通过方法名约定和注解配置,开发者可以轻松完成大部分数据库操作,特别适合中小型项目的快速开发。Spring Data JPA作为JPA的实现,与Spring Boot的无缝整合使得数据库操作变得更加简单高效。在实际工程实践中,JPA不仅支持基础的CRUD操作,还能处理复杂的关联关系和事务管理。对于性能优化,如N+1查询问题和批量操作,JPA也提供了多种解决方案。结合Spring

weixin_30785593的博客 750

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

spring boot jpa 访问 mysql

spring boot 访问 mysql方式二:spring data jpa 为什么使用 jpa :第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了。 如何使用:在 pom 文件中引入依赖 <!--jpa --> <dependency> <groupId&gt...

weixin_34268579的博客 179

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从JPA到响应式:Spring Boot ORM的进化之路,让数据库操作像喝咖啡一样丝滑

ORM技术演进:从JPA到MyBatis的思维转变 文章探讨了ORM技术的发展与选择:传统JPA/Hibernate在单体架构中表现稳定但可能成为云原生环境的性能瓶颈,而MyBatis则提供了更灵活的SQL控制能力。JPA通过注解方式简化了实体映射(如@Table、@Column),支持方法名衍生查询和JPQL,但要注意事务管理和SQL优化;MyBatis则通过XML映射文件实现精细SQL控制,支持复杂查询和特定数据库功能,更适合需要直接操作SQL的场景。两者各有优劣,开发者需根据项目需求选择适合的ORM方

墨夶的博客 1927

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

spring boot 中使用 jpa(详细操作)

1.maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!

qq_45381772的博客 7294

类型 jpa mysql_Spring Boot集成JPA

前言第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了。下面我们就用一个例子来讲述以下 JPA 使用的基本操作。新建项目,增加依赖在 Intellij IDEA 里面新建一个空的 SpringBoot 项目。根据本样例的需求,我们要添加下面三个依赖<dependency> <g...

weixin_39521520的博客 86

springboot + jpa 显示完整sql_Spring boot 整合Spring Data JPA

spring data jpa 官网的介绍Spring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA based repositories. This module deals with enhanced support for JPA based data access...

weixin_39600823的博客 1086

Spring Boot + JPA + MySQL 构建物资管理系统后端实战

在Java企业级应用开发中,对象关系映射(ORM)技术是连接业务逻辑与关系型数据库的关键桥梁。其核心原理是通过框架自动将Java对象映射到数据库表,从而屏蔽底层SQL差异,让开发者能以面向对象的方式操作数据。Spring Data JPA作为基于JPA规范的ORM框架,通过定义Repository接口和注解,极大地简化了数据持久层代码的编写,提升了开发效率并降低了出错率。结合Spring Boot的自动配置和快速启动能力,以及MySQL数据库的事务支持与稳定性,这套技术栈在管理信息系统、电商平台、库存管理等

www.itmmd.com 392
上一篇: mybatis实战教程(mybatis in action),mybatis入门到精通
下一篇: 整合maven+spring+springmvc+mybatis实现ssm通用增删查改基础开发框架
@清风明月情@
博客等级 码龄10年 52粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值