SpringBoot项目实战—难忘外卖开发:分类管理增删改查实践【03】

SpringBoot项目实战—难忘外卖开发:分类管理增删改查实践【03】

在现代电商和外卖系统中,分类管理是提升用户体验和运营效率的重要组成部分。一个高效的分类管理系统不仅能帮助用户快速找到所需商品,还能让管理员更加便捷地进行商品分类的增删改查操作。本文将以SpringBoot为基础,结合实际开发案例,详细讲解如何实现外卖系统中的分类管理功能。我们将重点介绍分页查询、分类增删改查、以及分类启用禁用的功能实现,通过具体的代码示例,帮助开发者快速掌握这一功能的实现技巧,提升开发效率和系统的可维护性。

一.分页管理查询

在外卖系统中,随着分类数量的不断增加,如何高效地展示和查询分类信息变得尤为重要。分页查询功能是解决这一问题的有效手段,它能够按需分批显示数据,避免一次性加载过多信息导致的性能问题。

在这一部分,我们将实现一个分页查询接口,能够根据前端传入的分页参数查询分类列表,并返回对应的分页数据。下面将通过具体的代码示例,展示如何在SpringBoot项目中实现分页查询功能。

分页查询接口:/admin/category/page

Query 参数:

image-20250225200546191

控制层代码

@GetMapping("/page")
@ApiOperation(value = "分页查询")
public Result<PageResult> add(CategoryPageQueryDTO categoryPageQueryDTO) {


    PageResult pageResult =classificationService.pageQuery(categoryPageQueryDTO);

    return Result.success(pageResult);


}

服务层接口

PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO);

服务层实现类

@Override
public PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO) {
    PageHelper.startPage(categoryPageQueryDTO.getPage(),categoryPageQueryDTO.getPageSize());
    Page<Category> page = classificationMapper.pageQuery(categoryPageQueryDTO);
    long total=page.getTotal();
    List<Category> category=page.getResult();
    return new PageResult(total,category);
}

PageHelper.startPage(categoryPageQueryDTO.getPage(),categoryPageQueryDTO.getPageSize());

这个是Mybatis的分页插件

<select id="pageQuery" resultType="com.sky.entity.Category">
    select * from category
    <where>
        <if test="name != null and name != '' ">
            and name like concat('%', #{name},'%')
        </if>
    </where>
    order by create_time desc


</select>

实现效果如下

image-20250225201019999

本章通过一个实际的分页查询功能的实现,展示了如何在SpringBoot项目中结合Mybatis进行数据的分页查询。具体步骤包括:

  1. 接口设计:通过GET请求的方式设计了分页查询接口,支持根据分类名称进行模糊查询,并接收分页参数(当前页和每页显示的条数)。
  2. 控制层实现:控制层接收分页查询请求,并调用服务层进行实际的数据查询。
  3. 服务层实现:服务层通过调用Mybatis的分页插件PageHelper来执行分页查询,获取分类数据并封装成分页结果返回。
  4. Mybatis Mapper SQL:在Mybatis的XML配置文件中,使用<where>标签动态拼接SQL,支持模糊查询,并根据创建时间进行排序。
  5. 实现效果:最终通过前端展示分页数据,实现了高效的数据查询和展示功能。

通过这部分内容,开发者可以掌握如何实现一个高效的分页查询接口,为系统处理大规模数据提供了有力的支持,也为后续功能的扩展打下了基础。

二.分类根据id删除分类删除

在分类管理系统中,删除分类是常见的操作之一。通常,管理员会根据分类的ID来删除某个特定的分类。本节将实现一个根据分类ID进行删除的功能。

接口:/admin/category

控制层

/**
 * 根据ID删除
 * 
 */
@DeleteMapping
@ApiOperation(value = "根据ID删除")
private Result<PageResult> Delete(Integer id){

    classificationService.DeleteByid(id);
    return Result.success();
    
}

sql语句

<delete id="DeleteByid">
    delete from category where  id=#{id}
</delete>

这块比较简单直接跳过。

image-20250225211011116

本章介绍了如何实现分类管理中的删除功能。通过提供一个根据分类ID删除分类的接口,我们实现了以下几个步骤:

  1. 接口设计:设计了一个DELETE请求接口,接收分类ID作为参数,并调用服务层方法进行删除操作。
  2. 服务层实现:服务层通过Mybatis的<delete>标签执行删除操作,从数据库中删除指定ID的分类。
  3. SQL语句:在Mybatis的XML文件中编写了删除语句,根据分类ID来执行删除。
  4. 简单实现:由于删除操作相对简单,重点是与数据库的交互和操作成功的反馈。

通过这一功能的实现,系统管理员可以方便地删除不需要的分类,保持数据的动态更新。这为后续的分类管理功能奠定了基础。

三.修改分类信息

在分类管理系统中,修改分类信息是常见的操作之一。管理员通常需要根据分类ID来修改该分类的名称、排序等信息。本节将介绍如何实现分类信息的修改功能。

PUT 类型 /admin/category

image-20250225212225642

控制层如下

    private Result<PageResult> Update(@RequestBody CategoryDTO categoryDTO){
//        System.out.println(id);
        System.out.println(categoryDTO);

        classificationService.Update(categoryDTO);

        return Result.success();
        
    }

SQL语句如下

<update id="Upadte">
    update category set  name = #{name} ,sort =#{sort}
                         where id=#{id}


</update>

image-20250225212347659

本章讲解了如何实现分类信息的修改功能。通过提供一个PUT请求接口,允许管理员根据分类ID修改指定分类的名称、排序等信息。具体实现步骤包括:

  1. 接口设计:设计了一个PUT请求接口,接收包含分类信息的DTO对象,并调用服务层进行更新操作。
  2. 服务层实现:在服务层,通过调用Mybatis的<update>标签执行更新操作,根据分类ID更新对应的分类信息。
  3. SQL语句:在Mybatis的XML文件中编写了更新语句,更新指定ID分类的名称和排序字段。
  4. 简单实现:修改操作简单直接,通过接收到的DTO对象更新数据库中的数据,并返回更新结果。

通过该功能,管理员可以方便地修改分类信息,确保分类数据的准确性和时效性。这为系统的灵活管理提供了支持。

四.启用禁用

在分类管理系统中,启用和禁用分类功能是常见的需求,特别是在需要暂时停用某些分类或者启用某些分类时,本节将展示如何实现该功能。

/**
 * 启用禁用
 */
@PostMapping("/status/{status}")
@ApiOperation("启用禁用")
public Result<PageResult> state(@PathVariable Integer status,  @RequestParam Integer id) {

    System.out.println(status);
    System.out.println(id);

    classificationService.state(status,id);

    return Result.success();


}
<update id="state">
    update category set  status =#{status}
    where id=#{id}


</update>

实现效果如下

image-20250225213626761

本章介绍了分类启用和禁用功能的实现。通过提供一个POST请求接口,管理员可以根据传入的状态值(启用或禁用)和分类ID,灵活地控制分类的状态。实现的关键步骤包括:

  1. 接口设计:设计了一个POST请求接口,接收状态和分类ID,执行启用或禁用操作。
  2. 服务层实现:在服务层,通过Mybatis的<update>标签更新分类的状态字段,根据传入的ID和状态执行更新操作。
  3. SQL语句:在Mybatis的XML文件中编写了更新语句,通过状态值(1或0)来控制分类的启用与禁用。
  4. 简洁实现:该功能实现简洁,能够即时切换分类的可用状态,帮助管理员管理分类的活跃状态。

通过该功能的实现,系统管理员可以在需要时轻松地启用或禁用分类,有效提高分类管理的灵活性和操作便捷性。

五.新增分类

接口:/admin/category

image-20250225222339853

控制层;

/**
 * 新增分类
 */
@PostMapping
@ApiOperation("新增分类")
public Result<PageResult> Add(@RequestBody CategoryDTO categoryDTO) {
    System.out.println(categoryDTO);
    classificationService.add(categoryDTO);



    return Result.success();
}

服务层

@Override
public void add(CategoryDTO categoryDTO) {
    Category category=new Category();
    BeanUtils.copyProperties(categoryDTO,category);

    category.setCreateTime(LocalDateTime.now());
    category.setUpdateTime(LocalDateTime.now());


    category.setCreateUser(BaseContext.getCurrentId());

    category.setUpdateUser(BaseContext.getCurrentId());

    classificationMapper.add(category);
}

MySQL语句

<insert id="add">
     insert into category (id,name,sort,type,create_time,update_time)
     VALUES (#{id},#{name},#{sort},#{type},#{createTime},#{updateTime})


</insert>

image-20250225222611598

本节介绍了如何实现分类的新增功能,使得管理员可以根据需要在系统中添加新的分类。具体实现步骤如下:

  1. 接口设计
    • 定义了一个POST请求接口/admin/category,请求体接收分类的详细信息(CategoryDTO)。
    • 在控制层通过调用classificationService.add(categoryDTO)方法来执行新增操作。
  2. 服务层实现
    • 在服务层,将接收到的CategoryDTO对象转换为Category实体对象,使用BeanUtils.copyProperties进行属性复制。
    • 设置新增分类的创建时间、更新时间、创建用户和更新用户。
    • 通过调用classificationMapper.add(category)将分类信息保存到数据库中。
  3. MySQL语句
    • 使用Mybatis的<insert>标签编写SQL插入语句,插入分类信息到数据库的category表中,包括分类的ID、名称、排序、类型、创建时间和更新时间等字段。

通过这个功能的实现,管理员能够在后台系统中动态地新增分类,确保系统的分类管理能够随着业务需求的变化灵活扩展。

总结

本文详细介绍了在基于SpringBoot的外卖系统中实现分类管理功能的具体步骤与实现。通过五大部分内容的讲解,展示了如何实现分类的增删改查(CRUD)操作,提升了系统的管理效率和用户体验。

  1. 分页管理查询:利用Mybatis分页插件实现了高效的分类列表查询,避免了一次性加载大量数据带来的性能问题。
  2. 分类删除功能:通过设计删除接口,允许管理员根据分类ID删除指定的分类。
  3. 修改分类信息:通过PUT请求实现了修改分类信息的功能,确保管理员能够及时更新分类的相关数据。
  4. 启用禁用功能:管理员可灵活地启用或禁用分类,通过POST请求控制分类的状态。
  5. 新增分类功能:通过设计新增分类接口,管理员能够动态地向系统添加新的分类,满足业务的不断扩展需求。

通过这些功能的实现,系统管理员能够高效地管理外卖平台的商品分类,提升了后台管理的灵活性与便捷性。本文不仅包含了详细的代码示例,还介绍了每个功能背后的实现原理,为开发者提供了一个全面的SpringBoot项目开发实践案例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一键难忘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值