SpringBoot从安装到实战(五)图书管理系统-利用Spring Data自动建表以及完成增删改查

本文介绍如何使用SpringBoot和SpringData快速搭建图书管理系统,通过实体类注解自动生成数据库表,实现增删改查功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

SpringBoot从安装到实战(四)用图书管理系统来小试牛刀–前置工作
在上一篇文章中,我们已经做好了相关的前置准备工作,现在让我们来开始建表吧!

相信很多读者在以往的项目开发中,对于建表这一环节是十分苦恼,不过幸运的是,spring data 内置了hibernate的相关依赖,让我们可以像创建类文件一样创建数据库表。同时,spring data还能帮我们自动完成对增删改查的实现,大大节约了开发成本。

废话不多说,让我们立刻开始开发吧!

创建实体类

zyd.entity包下创建一个名为Book的bean类

**
 * <p>
 * Title: Book
 * </p>
 * <p>
 * Description: 书本实体类
 * </p>
 * @author zyd
 * <p>
 * 创建日期:2020年4月11日
 * </p>
 */
@Entity
public class Book {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private long id;
  private String bookName;
  private String author;
  private long quantity;

  public Book() {}
  public Book(String bookName,String author,long quantity) {
    setBookName(bookName);
    setAuthor(author);
    setQuantity(quantity);
  }
  public String getBookName() {
    return bookName;
  }
//...省略setter
//...省略getter
 

细心的读者会发现,这个book类出现了有一些新的注释

注释解释

注释作用
@Entity表明这个类是一个实体类,将会自动按照类名创建数据库表
@Id标明实体类的主键
@GeneratedValue(strategy = GenerationType.AUTO)标明主键生成策略为自增(AUTO)

运行项目

创建完成后让我们来运行一下项目
就会发现hibernate已经自动为我们创建好相应的数据库表啦!
在这里插入图片描述

创建Dao接口

成功创建数据库表后,我们还得去实现数据库表的增删改查
zyd.dao包内创建一个名为BookDao的接口

import org.springframework.data.jpa.repository.JpaRepository;
import zyd.entity.Book;

/**
 * <p>
 * Title: BookDao
 * </p>
 * <p>
 * Description: 书本实体类Dao
 * </p>
 * @author zyd
 * <p>
 * 创建日期:2020年4月11日
 * </p>
 */
public interface BookDao extends JpaRepository<Book, Long> {

}

这样我们就实现了书本实体类的增删改查了!

读者:???
没错!这就是spring data 的魔力所在
我们仅需要创建一个接口并继承相应接口,便完成了对增删改查的支持

接口

除了文中提到的JpaRepository,还有其他的接口可以继承使用,可根据具体需求继承不同接口

CrudRepository自动实现单表的增删改查
PagingAndSortingRepository继承CrudRepository,同时提供分页和排序方法
JpaRepository继承PagingAndSortingRepository

你也可以在接口里面写自定义方法,只需要按照特定语法编写函数,springdata便会根据函数名猜测你要实现的功能并自动实现

假如你想实现根据作者返回作者的所有书本,你可以这样写:

public interface BookDao extends JpaRepository<Book, Long> {
    Iterable<Book>getBooksByAuthor(String author);
}

自定义jpa的语法分析

Iterable<Book>getBooksByAuthor(String author);

以这个来分析
我们将函数名分割开来
get/Books/by/Author
最前面的动词标明你要做某些事情(增删改查)
by后面表示你要根据by后面的名词来实现某个动作

在这里作者简单列出常用的操作符

  • get add update delete
  • And By Between OrderBy
  • Equals IsNot
  • IsAfter IsBefore
  • IgnoringCase
  • IsGreaterThan IsLessThan
  • IsNull IsNotNull IsTrue IsFalse
  • IsContaining IsLike IsNotLike

测试

完成接口开发后我们来测试一下接口能否正常运行
在test/java目录下创建zyd.dao包,并新建一个BookDaoTest类

import org.junit.jupiter.api.*;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import zyd.entity.Book;

@SpringBootTest
@ExtendWith(SpringExtension.class)
public class BookDaoTest {

  @Autowired
  private BookDao bookDao;
  
  @Test@Disabled
  public void testAdd() {
    Book book=new Book("book1","author1",50);
    bookDao.save(book);
  }
  @Test
  public void testFindAdd() {
    System.out.println(bookDao.findAll().get(0).getBookName());
  }
}

在这里插入图片描述
测试成功!

测试类注解解释

@Test设置一个测试方法
@Disabled禁用一个测试方法

本篇项目完整目录

在这里插入图片描述
在这里插入图片描述

下篇

SpringBoot从安装到实战(六)图书管理系统-整合Thymeleaf制作展示页面

一、项目简介 本项目是一套基于SpringBoot图书管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后台框架:SpringBoot ​数据库:MySQL 开发环境:JDK、IDEA、Tomcat 三、系统功能 本图书管理系统主要包含两种角色:读者和管理员。读者只能对个人信息的查阅、修改,图书的查询,而管理员则可以进行图书信息及借阅信息的管理。 具体实现功能如下: (1)系统登录。分为普通读者登录和管理员登录。 (2)系统管理。系统管理包括管理员设置,以及图书类别设置。管理员设置包括管理员信息的设置以及密码的设置。图书类别的设置只有管理员才可以对他进行新增,修改和删除。 (3)图书管理。包括图书信息管理,图书信息查询。只有管理员才可以对图书进行管理,图书查询是帮助读者方便查找图书信息。 (4)读者管理。读者管理包括读者信息管理,以及读者信息的查询。读者信息查询可以根据读者的姓名和编号进行查询。读者信息管理只对管理员有用,只有管理员可以添加读者,修改和删除读者的信息。 (5)图书借阅管理。图书借阅包括图书的借阅,归还以及续借。图书的借阅以及归还只对管理员起作用,只有通过管理员才可以进行图书的借阅以及归还。读者只能对图书进行续借的操作。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值