//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); } }
}