【jpa】springboot使用jpa示例

目錄

          • 1. 請求示例
          • 2. pom依賴
          • 3. application.yaml
          • 4.controller
          • 5. service
          • 6. repository
          • 7. 實體
          • 8. 啟動類

1. 請求示例
curl --location --request POST 'http://127.0.0.1:8080/user' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: 127.0.0.1:8080' \
--header 'Connection: keep-alive' \
--data-raw '{"name": "張三","age": 22,"phone": "18888888888","email": "18888888888@163.com","address": "上海市嘉定區"
}'
curl --location --request GET 'http://127.0.0.1:8080/user/1' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: 127.0.0.1:8080' \
--header 'Connection: keep-alive'
curl --location --request POST 'http://127.0.0.1:8080/user' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: 127.0.0.1:8080' \
--header 'Connection: keep-alive' \
--data-raw '{"id": 1,"name": "李四","age": 22,"phone": "18888888888","email": "18888888888@163.com","address": "上海市嘉定區"
}'
curl --location --request DELETE 'http://127.0.0.1:8080/user/1' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: 127.0.0.1:8080' \
--header 'Connection: keep-alive'
curl --location --request GET 'http://127.0.0.1:8080/user/list' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: 127.0.0.1:8080' \
--header 'Connection: keep-alive'
2. pom依賴
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>Learn</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.6</version></dependency><!-- Spring Boot Starter Data JPA --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><version>2.5.6</version></dependency><!-- MySQL 8.0 Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.32</version> <!-- 替換為具體的8.0版本,如8.0.32 --></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.52</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId><version>2.5.6</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
3. application.yaml
spring:datasource:url: jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8username: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverjpa:hibernate:ddl-auto: updateshow-sql: trueproperties:hibernate:dialect: org.hibernate.dialect.MySQL8Dialect
4.controller
package com.learn.controller;import com.learn.entity.UserEntity;
import com.learn.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;import javax.validation.Valid;
import java.util.List;@RestController
@RequestMapping("/user")
@Valid
public class UserController {@Autowiredprivate UserService userService;@PostMappingpublic UserEntity save(@Validated @RequestBody UserEntity user) {return userService.save(user);}@DeleteMapping("/{id}")public void delete(@PathVariable Long id) {userService.delete(id);}@GetMapping("/{id}")public UserEntity findById(@PathVariable Long id) {return userService.findById(id);}@GetMapping("/list")public List<UserEntity> list() {return userService.list();}
}
5. service
package com.learn.service;import com.learn.entity.UserEntity;
import com.learn.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;@Service
public class UserService {@Autowiredprivate UserRepository userRepository;public List<UserEntity> list() {return userRepository.findAll();}public UserEntity save(UserEntity user) {return userRepository.saveAndFlush(user);}public void delete(Long id) {userRepository.deleteById(id);}public UserEntity findById(Long id) {return userRepository.findById(id).get();}}
6. repository
package com.learn.repository;import com.learn.entity.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository<UserEntity, Long> {
}
7. 實體
package com.learn.entity;import lombok.Data;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;/*** @date 2024/12/12* @description 實體*/
@Data
@Table(name = "user")
@Entity
@Valid
public class UserEntity {@Id@GeneratedValueprivate Long id;@NotBlank(message = "姓名不能為空")private String name;@Min(value = 0, message = "年齡不能小于0")private Integer age;@Pattern(regexp = "^1[3456789]\\d{9}$", message = "手機號格式不正確")private String phone;@Pattern(regexp = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$", message = "郵箱格式不正確")private String email;@Size(max = 100, message = "地址長度不能超過100")private String address;
}
8. 啟動類
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @date 2024/12/11* @description*/
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63178.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63178.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapp 常用的指令語句

uniapp 是一個使用 Vue.js 開發的跨平臺應用框架&#xff0c;因此&#xff0c;它繼承了 Vue.js 的大部分指令。以下是一些在 uniapp 中常用的 Vue 指令語句及其用途&#xff1a; v-if / v-else-if / v-else 條件渲染。v-if 有條件地渲染元素&#xff0c;v-else-if 和 v-else 用…

中企出海-德國會計準則和IFRS間的差異

根據提供的網頁內容&#xff0c;德國的公認會計準則&#xff08;HGB&#xff09;與國際會計準則&#xff08;IFRS&#xff09;之間的主要差異可以從以下幾個方面進行比較&#xff1a; 財務報告的目的&#xff1a; IFRS&#xff1a;財務報告主要是供投資者做決策使用&#xff0c…

NPU是什么?電腦NPU和CPU、GPU區別介紹

隨著人工智能技術的飛速發展&#xff0c;計算機硬件架構也在不斷演進以適應日益復雜的AI應用場景。其中&#xff0c;NPU&#xff08;Neural Processing Unit&#xff0c;神經網絡處理器&#xff09;作為一種專為深度學習和神經網絡運算設計的新型處理器&#xff0c;正逐漸嶄露頭…

使用skywalking,grafana實現從請求跟蹤、 指標收集和日志記錄的完整信息記錄

Skywalking是由國內開源愛好者吳晟開源并提交到Apache孵化器的開源項目&#xff0c; 2017年12月SkyWalking成為Apache國內首個個人孵化項目&#xff0c; 2019年4月17日SkyWalking從Apache基金會的孵化器畢業成為頂級項目&#xff0c; 目前SkyWalking支持Java、 .Net、 Node.js、…

純CSS實現文本或表格特效(連續滾動與首尾相連)

純CSS實現文本連續向左滾動首尾相連 1.效果圖&#xff1a; 2.實現代碼&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…

【LeetCode刷題之路】622.設計循環隊列

LeetCode刷題記錄 &#x1f310; 我的博客主頁&#xff1a;iiiiiankor&#x1f3af; 如果你覺得我的內容對你有幫助&#xff0c;不妨點個贊&#x1f44d;、留個評論?&#xff0c;或者收藏?&#xff0c;讓我們一起進步&#xff01;&#x1f4dd; 專欄系列&#xff1a;LeetCode…

Node.js基礎入門

1.Node.js 簡介 Node 是一個讓 JavaScript (獨立)運行在服務端的開發平臺,它讓 JavaScript 成為與PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言。 發布于2009年5月,由Ryan Dahl開發,實質是對Chrome V8引擎進行了封裝。 簡單的說 Node.js 就是運行在服務端的…

#思科模擬器通過服務配置保障無線網絡安全Radius

演示拓撲圖&#xff1a; 搭建拓撲時要注意&#xff1a; 只能連接它的Ethernet接口&#xff0c;不然會不通 MAC地址綁定 要求 &#xff1a;通過配置MAC地址過濾禁止非內部員工連接WiFi 打開無線路由器GUI界面&#xff0c;點開下圖頁面&#xff0c;配置路由器無線網絡MAC地址過…

docker 部署kafka集群

docker run 部署 docker run -d --name zookeeper --restart always -p 2181:2181 wurstmeister/zookeeperdocker run -d --name kafka1 --restart always -p 9094:9092 \-e KAFKA_ADVERTISED_HOST_NAME182.54.14.45 \-e KAFKA_ZOOKEEPER_CONNECT182.54.14.45:2181 \-e KAFKA_…

Qt-chart 畫折線圖(以時間為x軸)

上圖 代碼 #include <iostream> #include <random> #include <qcategoryaxis.h>void MainWindow::testLine() {//1、創建圖表視圖QChartView* view new QChartView(this);//2.創建圖表QChart* chart new QChart();//3.將圖表設置給圖表視圖view->setCh…

C++多線程常用方法

在 C 中&#xff0c;線程相關功能主要通過頭文件提供的類和函數來實現&#xff0c;以下是一些常用的線程接口方法和使用技巧&#xff1a; std::thread類 構造函數&#xff1a; 可以通過傳入可調用對象&#xff08;如函數指針、函數對象、lambda 表達式等&#xff09;來創建一…

up主親測,ToDesk/青椒云/順網云這三款云電腦玩轉AIGC場景

文章目錄 1. 前言2. 云電腦性能分析3. 基礎硬件數據3.1 硬件配置3.2 AI 評測跑分 4. 云電腦 AIGC 上手實測4.1 ToDesk4.1.1 AIGC 技術集成情況4.1.2 界面及功能4.1.3 項目部署4.1.4 黑神話悟空 AI 換臉4.1.6 AIGC 文生圖體驗 4.2 青椒云4.2.1 AIGC 技術集成情況4.2.2 界面及功能…

C++(十八)

前言&#xff1a; 本文依據上一篇&#xff0c;繼續對C中的函數進行學習。 一&#xff0c;內聯函數。 再執行函數代碼時&#xff0c;比不使用函數花費了更多時間&#xff0c;因為總結步驟&#xff0c;傳遞參數和返回值都很花費時間。 因此&#xff0c;在調試小型函數時&…

功能篇:JAVA后端實現跨域配置

在Java后端實現跨域配置&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;有多種方法&#xff0c;具體取決于你使用的框架。如果你使用的是Spring Boot或Spring MVC&#xff0c;可以通過以下幾種方式來配置CORS。 ### 方法一&#xff1a;全局配置 對于所…

數獨游戲app制作拆解(之一)——功能介紹

android studio版本&#xff1a;2023.3.1 例程名稱&#xff1a;shudu666 前陣子作了一個EXCEL版的數獨&#xff0c;再早之前就想作這個數獨app,但一直沒動手&#xff0c;一方面懶&#xff0c;另一方面我把自己繞到坑里了&#xff0c;之前做的是一解數獨的app,那個是有點難&am…

Spring注解篇:@Configuration詳解

前言 在Spring框架中&#xff0c;Configuration注解是實現Java配置的核心。它允許開發者以編程的方式定義Bean的創建過程&#xff0c;而不是使用XML文件。這種基于注解的配置方式&#xff0c;不僅簡化了配置的復雜性&#xff0c;還提高了代碼的可讀性和可維護性。 摘要 本文…

通過一個例子學習回溯算法:從方法論到實際應用

回溯算法&#xff1a;從方法論到實際應用 回溯算法&#xff08;Backtracking&#xff09;是一種通過窮舉法尋找問題所有解的算法&#xff0c;它的核心思想是逐步構建解空間樹&#xff0c;在每個步驟中判斷當前解是否合法。如果不合法&#xff0c;就“回溯”到上一步&#xff0…

Python隨機抽取Excel數據并在處理后整合為一個文件

本文介紹基于Python語言&#xff0c;針對一個文件夾下大量的Excel表格文件&#xff0c;基于其中每一個文件&#xff0c;隨機從其中選取一部分數據&#xff0c;并將全部文件中隨機獲取的數據合并為一個新的Excel表格文件的方法。 首先&#xff0c;我們來明確一下本文的具體需求。…

構建樹莓派溫濕度監測系統:從硬件到軟件的完整指南

?作者簡介&#xff1a;2022年博客新星 第八。熱愛國學的Java后端開發者&#xff0c;修心和技術同步精進。 &#x1f34e;個人主頁&#xff1a;Java Fans的博客 &#x1f34a;個人信條&#xff1a;不遷怒&#xff0c;不貳過。小知識&#xff0c;大智慧。 &#x1f49e;當前專欄…

28. Three.js案例-創建圓角矩形并進行拉伸

28. Three.js案例-創建圓角矩形并進行拉伸 實現效果 知識點 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 3D 場景的主要渲染器。 構造器 WebGLRenderer( parameters : Object ) 參數類型描述parametersObject渲染器的配置參數&#xff0c;可選。 …