【Spring Boot】四种核心类的依赖关系:实体类、数据处理类、业务处理类、控制器类

//1.配置项目环境,创建Spring Boot项目。

//2.数据库设置,配置数据库。

//3.创建实体类,映射到数据库。

//4.创建数据处理层类,Repository

//5.创建业务处理类,Service类

//6.创建控制器类,Controller类

Article.java

java

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

@Entity

public class Article{

@Id

@GeneratedValue(strategy = GenerationType.AOTU)

private Long id;

private String title;

private String content;

private String author;

//省略构造函数、getter和setter方法

//省略toString方法

//一个实体类完成了!

}

ArticleRepository.java(数据访问层类)

'''java

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

import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface ArticleRepository extends JpaRepository<Article,Long>{

//可以在此自定义查询方法

//根据作者名查询文章

List<Article> findByAuthor(String author);

//根据标题和作者查询文章

List<Article> findByTitleAndAuthor(String title,String author);

//使用JPQL查询语句查询文章

@Query("Select a FROM Article a WHERE a.title LIKE %:keyword% OR a.content LIKE %:keyword%")

List<Article> fintByKeyword(String keyword);

}

ArticleService.Java(业务逻辑层):

'''java

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

import org.springframework.stereotype.Service;

import java.util.List;

import java.util.Optional;

@Service

public class ArticleService{

private final ArticleRepository articleRepository;

@Autowired

public ArticleService(ArticleRepository articleRepository){

this.articleRepository = articleRepository;

}

public List<Article>getAllArticles(){

return articleRepository.findAll();

}

public Optional<Article>getArticleById(Long id){

return articleRepository.findByID(id);

}

public Article createArticle(Article article){

return articleRepository.save(article);

}

/**

public void updateArticle(Long id, Article article) {

Optional<Article> existingArticle = articleRepository.findById(id);

if (existingArticle.isPresent()) {

Article updatedArticle = existingArticle.get();

updatedArticle.setTitle(article.getTitle());

updatedArticle.setContent(article.getContent());

updatedArticle.setAuthor(article.getAuthor());

articleRepository.save(updatedArticle);

}

}

**/

public void deleteArticle(Long id){

articleRepository.deleteById(id);

}

}
ArticleController.java(控制器类):

'''java

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

import org.springframework.http.HttpStatus;

import org.springframework.http.ResponseEntity;

import org.springframework.web.bind.annotation.*;

import java.util.List;

import java.util.Optional;

@RestContrller

@RequestMapping("/articles")

public class ArticleController{

private final ArticleService articleService;

@Autowired

public ArticleControler(

ArticleService articleService

){

tihs.articleService = articleService;

}

@GetMapping

public ResponseEntity<List<Article>>getAllArticles(){

List<Article>articles = articleService.getAllArticles;

return new ResponseEntity<>(articles,HttpStatus.OK)

}

//以下为粘贴

@GetMapping("/{id}")

public ResponseEntity<Article> getArticleById(@PathVariable Long id) {

Optional<Article> article = articleService.getArticleById(id);

return article.map(value -> new ResponseEntity<>(value, HttpStatus.OK))

.orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND));

}

@PostMapping

public ResponseEntity<Article> createArticle(@RequestBody Article article) {

Article createdArticle = articleService.createArticle(article);

return new ResponseEntity<>(createdArticle, HttpStatus.CREATED);

}

@PutMapping("/{id}")

public ResponseEntity<Void> updateArticle(@PathVariable Long id, @RequestBody Article article) {

articleService.updateArticle(id, article);

return new ResponseEntity<>(HttpStatus.NO_CONTENT);

}

@DeleteMapping("/{id}")

public ResponseEntity<Void> deleteArticle(@PathVariable Long id) {

articleService.deleteArticle(id);

return new ResponseEntity<>(HttpStatus.NO_CONTENT);

}

}

}

相关推荐
「QT(C++)开发工程师」8 分钟前
UML | 最好的类图设计工具结合CSDN天启呈现-领路架构师
数据库·uml·类视图
Damon小智11 分钟前
玩转ClaudeCode:用Database-MCP实现自然语言操作数据库
数据库·ai编程·claude·vibe coding·claude code
相与还12 分钟前
godot+c#使用godot-sqlite连接数据库
数据库·c#·godot
ZHOU_World19 分钟前
数据库主从同步
数据库·mysql
茉莉玫瑰花茶20 分钟前
MySQL 用户管理
数据库·mysql
FL162386312923 分钟前
C#winform流程图工具箱源码支持画矩形箭头圆形菱形保存为图片
数据库·oracle
博一波29 分钟前
MySQL 备份与复制:类似“手机数据管理”
数据库·mysql
semantist@语校30 分钟前
第二十篇|SAMU教育学院的教育数据剖析:制度阈值、能力矩阵与升学网络
大数据·数据库·人工智能·百度·语言模型·矩阵·prompt
xqlily37 分钟前
SQL 数据库简介
数据库·sql
正在走向自律1 小时前
Java连接电科金仓数据库(KingbaseES)实战指南
java·数据库·oracle·国产数据库·kingbase