SpringBoot--基于SpringBoot实现的简单图书管理(CRUD操作)

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

1. 整合Mybatis-plus

1.1 基础配置
  1. 手动添加依赖 数据池依赖和mybatis-plus依赖
       <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>
  1. 配置文件中添加属性
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
      username: root
      password: root
  1. 添加实体类
  2. 编写Mapper,继承Base接口,并将泛型实例化。
@Mapper
public interface BookDao extends BaseMapper<Book> {
   
}

  1. 测试类中进行测试。
1.2 数据库表交互
  1. mybatis-plus对数据表进行读取时,不能读取到表的前缀,需要在配置文件中添加表前缀。
  2. 同时还需要添加自增属性,使数据能够实现自增功能,如 id属性。
  3. 开启日志属性,这样就不用采用输出语句,直接运行接口中的方法就能在控制台上直观看到数据
#配置表名前缀
mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_
      #设置自增
      id-type: auto
  configuration:
    #开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

2. 分页功能

  1. base接口中已经实现了分页的功能,可以直接调用方法,但是调用方法不会直接得到响应结果,需要对其进行配置。
@Test
    void testGetPage(){
   
        IPage page = new Page(1,5);
        bookDao.selectPage(page,null);//返回的依旧是 Ipage接口类型是数据
    }
  1. 添加配置类,将分页拦截器加载到mybatis-plus中。
@Configuration
public class MPConfig {
   
    //创建mybatis-plus拦截器
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
   
        //定义拦截器
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //添加分页拦截器
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }

}
  1. 分页后可以得到很多数据,如:
    • 数据 当前页码 每页数据总量 最大页码 数据总量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkMUREZw-1647693229509)(C:\Users\10990\AppData\Roaming\Typora\typora-user-images\image-20220318120655416.png)]

3. 条件查询

  1. 创建QueryWrapper对象,给对象添加值。
    • 缺点: 需要手动添加对象的属性值
  2. 创建LambdaQueryWrapper 对象,可以实现自动添加对象属性值,避免错误出现。
  3. 针对没有输入的空值,可以在最前面添加 判断类型。
    • 类似语法 if(…){}
   @Test
    void testGetBy(){
   
//        QueryWrapper<Book> qw = new QueryWrapper<>();
//        qw.like("type","说");
//        bookDao.selectList(qw);
        String name = null;
        LambdaQueryWrapper<Book> lqw = new LambdaQueryWrapper<>();
        //lqw.like(Book::getName,"三");
        lqw.like(name!=null,Book::getName,name);
        bookDao.selectList(lqw);
    }
}

4. 业务层快速开发

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值