带你搭一个SpringBoot+SpringData JPA的Demo

用springboot+springdata-jpa+vue实现简单的前后端分离增删改查 用springboot+springdata-jpa+vue实现简单的前后端分离增删改查 话不多说 先上pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&gt... 阅读详情

前言

只有光头才能变强。

不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。SpringBoot和SpringData JPA的好处我就不说了,当时我学习的时候也粗略做过笔记,有兴趣的同学可以去看看

其实我在学完SpringBoot和SpringData JPA了之后,写过一个小Demo,但一直没发出来而已(懒)。而最近要写毕业设计的一个管理模块(CRUD),并且我又没写过相关SpringBoot和SpringData JPA的搭建教程,所以就诞生了这篇文章了。

一、从零搭建环境

本次我使用的是IDEA编辑器来搭建SpringBoot和Spring Data JPA环境

首先,我们在IDEA新建项目的时候,选择Spring Initializr,然后next就行了。

640?wx_fmt=png
选择Spring Initializr

然后填写一些项目的资料(其实这些资料也无关紧要,自己看着填就好了),随后点击next

640?wx_fmt=png
填写一些项目的资料

随后在勾选的时候,我就随手勾选了个LomBok(其他的没勾选,反正后面我们可以在pom文件下配置嘛)。可以看出,本次SpringBoot的版本为2.1.3。

640?wx_fmt=png
勾选了个LomBok

然后IDEA就会帮我们创建出Maven管理下SpringBoot的项目啦,此时一般我们会指定自己的下载好的Maven,重写它的settings.xml文件

640?wx_fmt=png
配置maven

然后Maven就一直在下载相关的依赖啊,必要的插件啊(我等了差不多10分钟吧,这个时间可以去倒杯Java喝喝.haha),等Maven下载完之后,我们的项目就成了下面那个样子了(注:原生的是application.properties文件的,我改了一下后缀,我比较喜欢yml格式的):

640?wx_fmt=png
已经是一个SpringBoot项目了

二、完善pom文件

现在pom文件只有SpringBoot和LomBok的依赖,想要完成CURD的功能,我们需要用到Spring Web模块、Spring Data JPA以及MySQL驱动依赖,所以我们得在pom文件下加入这些依赖:

<!--Web必要的--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><!--spring data jpa--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!-- MySQL的java驅動 --><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId></dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

<!-- MySQL的java驅動 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

pom文件的完整依赖图如下:

640?wx_fmt=png
pom文件的完整依赖图

三、配置yml文件

既然我们用到了SpringData JPA和MySQL,我们得为其进行配置最基础的信息。比如说数据库的用户名和密码,相对应的库,以及SpringData JAP的策略。

#服务端容器的配置server:  port: 8887#数据库配置spring:  datasource:    username: 填写自己的    password: 填写自己的    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://填写自己的机器:3306/填写自己的库?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC    # JPA配置  jpa:    hibernate:      ddl-auto: update    show-sql: true    # formatSQL得这样写    properties:      hibernate:        format_sql: true
  port: 8887


#数据库配置
spring:
  datasource:
    username: 填写自己的
    password: 填写自己的
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://填写自己的机器:3306/填写自己的库?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
    # JPA配置
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

    # formatSQL得这样写
    properties:
      hibernate:
        format_sql: true

yml文件完整图如下:

640?wx_fmt=jpeg
yml文件完整图

数据库的信息填写成自己的就行了。

四、写一个User实体

我毕业设计其中就有对用户的管理,我们用户实体设计如下(大家的当然可以跟我的不一样了,我这只是样例):

package com.zhongfucheng.example.demo.domain;import lombok.Data;import org.hibernate.annotations.GenericGenerator;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import java.io.Serializable;import java.util.Date;/** * 存储用户的信息 * * @author ozc * @version 1.0 */@Entity // jpa的注解,需要加@Table(name = "table_user") // 指定数据库的表名@Data // lombok public class User implements Serializable {    @Id    @GeneratedValue(generator = "system-uuid")    @GenericGenerator(name = "system-uuid", strategy = "uuid")    private String userId;    private String userNickname;    private String userPassword;    private String userEmail;    private Integer actiState;    //激活成功与激活失败常量    public static final int ACTIVATION_SUCCESSFUL = 1;    public static final int ACTIVATION_UNSUCCESSFUL = 0;    private String actiCode;    private Date tokenExptime;}

import lombok.Data;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

/**
 * 存储用户的信息
 *
 * @author ozc
 * @version 1.0
 */

@Entity // jpa的注解,需要加
@Table(name = "table_user") // 指定数据库的表名
@Data // lombok 
public class User implements Serializable {
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String userId;

    private String userNickname;

    private String userPassword;

    private String userEmail;

    private Integer actiState;

    //激活成功与激活失败常量
    public static final int ACTIVATION_SUCCESSFUL = 1;
    public static final int ACTIVATION_UNSUCCESSFUL = 0;

    private String actiCode;

    private Date tokenExptime;

}

再补充一句:因为我们有了LomBok的Data注解,并且在IDEA已经下好的LomBok的插件,所以我们可以不用写set、get方法。

User实体图如下:

640?wx_fmt=jpeg
User实体图

五、写一个UserRepository

UserRepository是dao层的东西了,相当于UserDao/UserMapper,只是叫法不一样而已。比如在Struts2喜欢将名字取成xxxAction,而在SpringMVC喜欢将名字取成xxxxController。

一般地,我们将UserRepository继承JpaRepository就可以有对应的增删改查方法:

import com.zhongfucheng.example.demo.domain.User;import org.springframework.data.jpa.repository.JpaRepository;/** * UserDao  操作数据库 * @author ozc * @version 1.0 */public interface UserRepository extends JpaRepository<User, String> {}
import org.springframework.data.jpa.repository.JpaRepository;


/**
 * UserDao  操作数据库
 * @author ozc
 * @version 1.0
 */

public interface UserRepository extends JpaRepository<User, String> {

}

UserRepository图如下:

640?wx_fmt=jpeg
UserRepository图

ok,我们的UserRepository已经写好了,至于为啥我们传入<User, String>,点进去看一下就明白了:

640?wx_fmt=jpeg
T表示为我们实体的类型,ID表示为我们主键的类型

六、写一个UserService

我们就查user表所有的记录出来就好了,代码如下:

// 接口public interface UserService {    List<User> getAllUser();}// 实现@Servicepublic class UserServiceImpl implements UserService {    @Autowired    private UserRepository userRepository;    @Override    public List<User> getAllUser() {        return userRepository.findAll();    }}
public interface UserService {

    List<User> getAllUser();
}

// 实现
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public List<User> getAllUser() {
        return userRepository.findAll();
    }
}

UserService图如下:

640?wx_fmt=jpeg
UserService图

为啥会有findAll()方法?因为我们的UserRepository 继承了JpaRepository

七、写一个UserController

UserController调用一下service的方法,看是否能返回成功,如果能返回成功,那说明我们的环境已经是ok的了。

UserController代码如下:

@RestControllerpublic class UserController {    @Autowired    private UserService userService;    /**     * 得到所有用户     */    @GetMapping(value = "/user", produces = {"application/json;charset=UTF-8"})    public void  getAllUser () {        List<User> allUser = userService.getAllUser();        for (User user : allUser) {            System.out.println(user);        }    }}
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 得到所有用户
     */

    @GetMapping(value = "/user", produces = {"application/json;charset=UTF-8"})
    public void  getAllUser () {

        List<User> allUser = userService.getAllUser();

        for (User user : allUser) {
            System.out.println(user);
        }
    }
}

Controller代码图如下:

640?wx_fmt=jpeg
Controller代码图

八、测试一下看是否能返回数据

进入DemoApplication,右键,启动我们的SpringBoot项目:

640?wx_fmt=jpeg
启动SpringBoot项目

在浏览器输入我们的url:http://localhost:8887/user。然后我们从后台查看,打印出查询的SQL语句,已经后台已经打印表已有的记录。

640?wx_fmt=jpeg
打印出查询的SQL语句和已有的记录

最后

我们可以发现使用SpringBoot+SpringData JPA的方式,不需要很多的配置,不需要很多的代码就可以从数据库中查找出数据了。非常适合我们做一些简答的测试和小功能。如果对例子有疑问的同学应该是对SpringData JPA不太熟悉,建议去找找相关的教程看一下,相信你可以很快就入门了。

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!

640?wx_fmt=jpeg
帅的人都关注了
有帮助?在看!转发!640

推荐阅读:




七十三、SpringBoot整合Jpa jpa,全称为Java persistence api,是用来管理java ee 或Java se环境中的持久、以及对象关系映射的api,hibernate就是它的一个实现。 阅读详情

相关推荐

微服务架构学校培训管理系统:从Excel对账到服务化实践

微服务架构将单体应用拆分为独立服务,通过注册中心实现服务发现与配置管理。Spring Cloud Alibaba 生态下的 Nacos 作为注册配置中心,结合 Dubbo 与 OpenFeign 双通道进行跨服务调用,网关统一拦截请求,前端采用 Vue.js 构建界面。这种架构能提升系统可维护性与扩展性,适用于高校、培训机构等需要管理报名、签到、考试、证书等业务的场景。本文基于一个可运行的学校培训管理系统,讲解本地启动流程、核心业务模块实现,并提供避坑清单,帮助开发者快速搭建类似微服务项目。

weixin_34292402的博客 384

IDEA搭建SpringBoot

文章目录SpringBoot的环境搭建 SpringBoot的环境搭建 利用IDEA的SpringInitiar进行搭建 1、打开IDEA之后,点击File -> new -> project ,进去之后,找到Spring Initize 点击Spring Initialize之后,如果像上面一样使用default那个选项的话,那么就会有可能点击next之后,会出现加载很久的情况,那么这时候考虑使用阿里云代理即可,即勾选default下面的custom 2、上一步点击next之后,这时候就会

奋斗的龙猫的博客 2269

OpenClaw 聪明设置指南(真实可用方案)

本文介绍了OpenClaw AI系统的配置与优化指南,主要内容包括:1)基础配置,涵盖初始化流程、安全设置和配置文件位置;2)模型分层策略,推荐主力模型与降级方案;3)性能优化,包括推理加速和内存管理;4)智能提升方法,如人格定义和技能安装;5)高级功能如多Agent协同和Token优化。文章提供了详细的配置命令和参数说明,帮助用户根据需求平衡性能与成本,实现高效AI助手部署。

qq_43344878的博客 709

springboot整合jpa项目入门级别demo

springboot整合jpa项目入门级别demo前言一、新建一个空boot项目二、准备好数据库,下面以MySQL为主三、导入依赖四、生成JPA实体五、JPA基本注解六、JPQL 和 EntityManager七、配置文件八、demo包 前言 简单基础入门级别,有基础勿留香! 一、新建一个空boot项目 傻瓜式创建即可 二、准备好数据库,下面以MySQL为主 创建好测试表dog表,待用 三、导入依赖 下面依赖,后续会用到,直接贴上了 <!--本demo 核心依赖 begin--&g

@素素~的博客 2380

FunASR与FreeSWITCH融合实战:从零构建高精度语音质检系统

本文详细介绍了如何将FunASR与FreeSWITCH融合,构建高精度语音质检系统。通过实时语音听写技术,结合热词定制和多模型切换,实现客服中心等场景的自动化质检,显著提升识别准确率和效率。系统架构涵盖音频采集、识别处理和业务应用三层,支持负载均衡和性能优化,适用于工业级部署。

weixin_29198045的博客 980

transformer优化(一)-UNeXt 学习笔记

​它在早期阶段使用卷积,在潜在空间阶段使用 MLP。通过一个标记化的 MLP 块来标记和投影卷积特征,并使用 MLP 对表示进行建模。 ​

PLANTTHESON的博客 2033

idea怎么搭建springboot

5、默认端口号为8080,我们可以在配置文件application.properties里修改端口号。

2301_78021017的博客 2464

GIS国土工具实战:从地类分析到坐标转换,一站式解决项目难题

本文详细介绍了GIS国土工具在国土整治项目中的高效应用,涵盖地类分析、坐标转换、影像加载等核心功能。通过实战案例展示如何利用该工具快速处理shp与txt文件转换、智能比对三调二调数据,以及优化影像加载策略,显著提升项目效率。特别适合需要处理复杂国土数据的专业人员使用。

weixin_28732953的博客 334

idea必装的插件 Spring Boot Helper 插件(创建 Spring Boot 项目)

idea必装的插件 Spring Boot Helper 插件(创建 Spring Boot 项目)

q322359的博客 2万+

[代码开源]基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)实现与性能分析

本文详细介绍了基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)的实现与性能分析。通过代码开源,展示了如何从零搭建电力系统优化模型,解决配电网中的发电成本最小化问题。文章涵盖数据准备、模型实现细节、性能优化建议及常见问题解答,为电力系统研究者提供实用参考。

weixin_29103191的博客 708

Ardupilot无人船(车)mavros自主控制

rover 4.4。

超维空间科技的博客 3229

intellij idea(spring boot)安装和配置

intellij idea 社区版2021.3.2,开发springboot配置 将c盘配置文件保存到d盘环境,避免占用c盘空间 maven切换国内镜像,修改本地仓库地址,避免占用c盘空间

study_zy的专栏 1万+

海康DS-7604N-K1/RTB固件包

【摘要】海康DS-7604N-K1/RTB萤石云设备发布V4.30.091版本升级程序(2022.09.19),仅适用于指定型号。升级前需先升级至V3.4.106基础版本,刷机会重置设备为未激活状态,需重新设置admin密码。该机型支持密码/手势登录,无密码时可通过U盘升级。注意事项:升级存在风险,需确认程序适用性;升级过程严禁断电;必须阅读压缩包内的刷机说明。此为定制机型,非必要不建议升级。(150字)

海康威视技术支持 1575

idea加入springboot插件_带你搭一个SpringBoot+SpringData JPA的Demo

前言只有光头才能变强。不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。SpringBoot和SpringData JPA的好处我就不说了,当时我学习的时候也粗略做过笔记,有兴趣的同学可以去看看SpringBoot就是这么简单SpringDa...

weixin_39864453的博客 538

Win11此电脑怎么放在桌面上?Win11此电脑如何显示在电脑桌面上?

相信用习惯Win10的用户都喜欢电脑电脑桌面上的此电脑,但是很多用户更新完Win11正式版以后,发现桌面只有回收站和Microsoft Edge图标,没有此电脑。那么,Win11此电脑要如何显示呢?下面小编为大家简单介绍一下操作方法!5、桌面图标设置窗口,点击勾选计算机,然后点击确定,桌面就可以显示此电脑图标了。1、桌面空白处,点击右键,在打开的菜单项中,选择显示设置;4、个性化 - 主题,相关设置下,点击桌面图标设置;3、右侧点击主题(安装、创建、管理);2、设置窗口,左侧点击个性化;

shengyin714959的博客 13万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

带你搭一个SpringBoot+SpringData JPA的环境

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。SpringBoot和SpringData J...

3y 507

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

idea加入springboot插件_带你搭一个SpringBoot+SpringData JPA的环境

前言只有光头才能变强。不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。SpringBoot和SpringData JPA的好处我就不说了其实我在学完SpringBoot和SpringData JPA了之后,写过一个小Demo,但一直没发出来而已(懒)...

weixin_39957647的博客 349

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在eclipse上使用springboot集成springdata JPA将数据库的内容分页显示到网页上

springboot使用springdata JPA连接数据库开始接触springboot新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchar...

weixin_42311416的博客 958

【持久层框架】- SpringData - JPA

JPA 即Java Persistence API。是一款持久层框架,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA的对象关系映射(ORM)模型是基于Hibernate。是一款面向对象的ORM框架,JPA不需要关心数据库字段,通过注解将数据库表与实体完成映射,在java中的操作只需要对实体进行操作即可。ORM(Object-Relational Mapping) 表示对象关系映射。

Huangjiazhen711的博客 299

SpringData JPA框架

内容 1.概述 2.开发步骤 3.常用接口 4.方法定义规范 5.常用注解 6.接口方法解析 7.自定义Repository方法 8.SpringData和SpringBoot框架搭建 9.在SpringBoot中使用单元测试 10.附:hibernate常用注解及HQL语句 一SpringData概述 1.SpringData介绍 1.Spring Data : Spring 的一个子项目。...

weixin_43343423的博客 445

springboot学习笔记(二)——使用springData-JPA进行增删改查

前言:       Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷。当然,也可以提供用户自己定义的sql。(个人喜欢自己写sql,因为可控,所以后面介绍springboot使用Mybatis)springdata对单表操作十分方便,但是遗憾的是多对多表操作支持的不太好,这时候自己写sql的好处就体现了。      springdat...

LuckyToMeet-Dian叶 4434
上一篇: TensorFlow读写数据
下一篇: (修订版)AJAX入门!
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值