京淘(三)---- 数据填充、回显、修改、删除、事务、商品分类

本文详细介绍了京淘系统中数据填充、回显、修改、删除的实现,利用MybatisPlus实现自动填充功能,以及用户操作过程中的事务处理。同时,文章还探讨了全局异常处理机制,确保系统稳定性。最后,阐述了商品分类业务的实现,包括页面跳转、3级菜单结构的封装和商品分类列表的展示。
摘要由CSDN通过智能技术生成

目录

一、数据的自动填充

1)业务的需求说明

2)MPAPI说明

1、语法规则

2、添加注解

3、编辑配置类

2)用户修改-数据回显

1、页面URL

2、查询用户的业务接口

3、编辑UserController

4、编辑UserServiceImpl

5、数据回显

3)用户修改

1、页面分析

2、业务接口文档说明 

3、编辑UserController

4、编辑UserServiceImpl

4)用户删除

1、页面JS分析

2、业务接口文档

3、编辑UserController

4、编辑UserServiceImpl

二、事务

1)什么是事务?

2)事务的四个特性:

3)添加 @Transaction 注解

 4)全局异常的处理机制

1、常规操作

2、全局异常处理机制

 四、商品分类业务实现

1)实现商品分类页面跳转

 2)ItemCat 说明

1、表设计说明

2、ItemCat POJO说明

3、商品分类业务说明

4、如何利用对象封装3级菜单结构?

 2)商品分类列表实现

1、业务需求

2、页面JS说明

3、业务接口文档说明

4、编辑ItemCatController 

5、编辑ItemCatService

6、页面展现


一、数据的自动填充

1)业务的需求说明

需求:数据库中每张表里 都包含创建时间/修改时间的字段. 如果每次操作表,都手动的去维护时间信息.则响应开发效率. 能否优化策略.

解决策略:MybatisPlus实现自动填充功能

2)MPAPI说明

1、语法规则

  • 实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler

  • 注解填充字段 @TableField(… fill = FieldFill.INSERT) 生成器策略部分也可以配置!

2、添加注解

  • 说明: 新增操作 需要自动填充 created/updated.
  • 修改操作 需要自动填充 updated

在这里插入图片描述

3、编辑配置类

@Component  //将对象交给Spring容器管理
public class MyMetaObjectHandler implements MetaObjectHandler {

    //当数据库做新增操作时,自动调用  API调用 不需要问为什么
    //metaObject对象 是MP自动填充的配置 有默认行为
    @Override
    public void insertFill(MetaObject metaObject) {
        //获取当前时间
        Date date = new Date();
        this.setFieldValByName("created", date, metaObject);
        this.setFieldValByName("updated", date, metaObject);
    }
    //当数据库做修改操作时,自动调用
    @Override
    public void updateFill(MetaObject metaObject) {
        //获取当前时间
        Date date = new Date();
        this.setFieldValByName("updated", date, metaObject);
    }
}

2)用户修改-数据回显

1、页面URL

	//1. 点击修改的按钮
	 <template slot-scope="scope">
                <el-button type="primary" icon="el-icon-edit" size="small" @click="updateUserBtn(scope.row)"></el-button>
                <el-button type="danger" icon="el-icon-delete" size="small" @click="deleteUser(scope.row)"></el-button>
      </template>
	
	//2. 按钮事件
	 async updateUserBtn(user){
        this.updateDialogVisible = true
        const {data: result} = await this.$http.get("/user/"+user.id)
        if(result.status !== 200) return this.$message.error("用户查询失败")
        this.updateUserModel = result.data
      },

 2、查询用户的业务接口

  • 请求路径: /user/{id}
  • 请求类型: GET
  • 返回值: SysResult对象
参数名称 参数说明 备注
status 状态信息 200表示服务器请求成功 201表示服务器异常
msg 服务器返回的提示信息 可以为null
data 服务器返回的业务数据 返回user对象

 3、编辑UserController

需求:根据ID查询User用户信息

在这里插入图片描述

4、编辑UserServiceImpl

在这里插入图片描述

5、数据回显

在这里插入图片描述

3)用户修改

1、页面分析

在这里插入图片描述

2、业务接口文档说明 

  • 请求路径: /user/updateUser
  • 请求类型: PUT
  • 请求参数: User对象结构
参数名称 参数说明 备注
ID 用户ID号 不能为null
phone 手机信息 不能为null
email 邮箱地址 不能为null
  • 返回值: SysResult对象
参数名称 参数说明 备注
status 状态信息 200表示服务器请求成功 201表示服务器异常
msg 服务器返
uniapp是一个基于Vue.js的跨平台开发框架,可以用于开发iOS、Android、H5等多个平台的应用程序。u-checkbox-group和u-checkbox是uniapp中的两个组件,用于实现多选功能和数据回显。 u-checkbox-group是一个多选框组的容器,可以包含多个u-checkbox组件。它通过v-model绑定一个数组来实现数据的双向绑定。当用户选择或取消选择某个u-checkbox时,对应的数据会自动添加或移除到绑定的数组中。 u-checkbox是一个单个的多选框,可以通过v-model绑定一个布尔值来表示是否选中。当用户选择或取消选择该多选框时,绑定的布尔值会自动更新。 要实现数据回显,首先需要在data中定义一个数组来存储选中的数据。然后,在u-checkbox-group中使用v-model绑定该数组。当需要回显数据时,只需要将对应的数据添加到数组中即可。 以下是一个示例代码: ``` <template> <view> <u-checkbox-group v-model="selectedItems"> <u-checkbox v-for="item in items" :key="item.id" :label="item.id" :value="item.name">{{ item.name }}</u-checkbox> </u-checkbox-group> <button @click="showSelectedItems">显示选中的数据</button> </view> </template> <script> export default { data() { return { items: [ { id: 1, name: '选项1' }, { id: 2, name: '选项2' }, { id: 3, name: '选项3' } ], selectedItems: [] }; }, methods: { showSelectedItems() { console.log(this.selectedItems); } } }; </script> ``` 在上面的示例中,items数组存储了所有的选项数据,selectedItems数组用于存储选中的数据。当用户选择或取消选择某个选项时,selectedItems数组会自动更新。点击"显示选中的数据"按钮时,会将选中的数据打印到控制台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值