其他分享
首页 > 其他分享> > CGB2104-Day13

CGB2104-Day13

作者:互联网

1. 用户模块管理

1.1 利用MP实现分页查询

1.1.1 编辑UserController

在这里插入图片描述

1.1.2 编辑UserService


  1. /
    利用MP的方式实现分页查询
  2. API说明: selectPage(arg1,arg2)
    arg1: MP中的分页对象 固定的
  3. arg2: MP分页中的条件构造器
    @param pageResult
  4. @return
    动态Sql: select from user where username like “%admin%”
    条件: 如果用户传递query则拼接where条件 否则不拼接where条件
  5. /
    @Override
    public PageResult getUserList(PageResult pageResult) {//原始3个参数
    //1.定义MP的分页对象 arg1:页面 arg2:行数
    IPage iPage = new Page(pageResult.getPageNum(), pageResult.getPageSize());
    //2.构建查询条件构造器
    QueryWrapper queryWrapper = new QueryWrapper();
    //判断用户数据是否有效 有效 true 无效 false
    boolean flag = StringUtils.hasLength(pageResult.getQuery());
    queryWrapper.like(flag, “username”, pageResult.getQuery());
    //经过MP分页查询将所有的分页(total/结果/页面/条数/xxx)数据封装到iPage对象
    iPage = userMapper.selectPage(iPage,queryWrapper);
    //从分页对象中获取总记录数
    long total = iPage.getTotal();
    //从分页对象中获取分页后的结果
    List<User> rows = iPage.getRecords();
    return pageResult.setTotal(total).setRows(rows); //需要返回的是5个参数
    }

1.1.3 MP分页API

在这里插入图片描述

1.1.4 编辑MP配置类

//命名规则: 类似于配置文件 则把这个类称之为”配置类”一般Config结尾
@Configuration //标识我是一个配置类(代替之前的xml文件)
public class MybatisPlusConfig {
//铺垫: xml中通过标签管理对象,将对象交给Spring容器管理. <bean>
//配置类: 将方法的返回值交给Spring容器管理 @Bean注解.

/

关于MP分页规则说明

  1. 规则: 需要设定一个拦截器.将分页的Sql进行动态的拼接.
    Sql: 规则现在的Sql都支持Sql92标准!!!! 设计理念不同
  2. /
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MARIADB));
    return interceptor;
    }
    }

1.2 状态修改

1.2.1 业务说明

说明: 当修改状态信息时,应该修改status属性, 启用-true/停用-false
修改条件: userId/当前的状态信息.
在这里插入图片描述

1.2.2 业务接口说明

在这里插入图片描述

1.2.3 前端JS分析

  1. 作用域插槽 一般用在循环遍历时,获取单行数据.
    在这里插入图片描述
  2. 页面Ajax
    在这里插入图片描述

1.2.4 编辑UserController

在这里插入图片描述

1.2.5 编辑UserService

在这里插入图片描述

1.3 用户新增

1.3.1 正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

1.3.2 正则表达式语法

  1. 起始/结束
    在这里插入图片描述
  2. 次数匹配
    在这里插入图片描述
  3. 次数区间用法 {}
    例子: 3{3,5} 333 3333 33333
    在这里插入图片描述
  4. 任意字符
    在这里插入图片描述
  5. 取值范围 []
    在这里插入图片描述
  6. 分组写法
    案例: 需要匹配图片的类型 xxx.jgp 只要满足其中之一即可 (jpg|png|jpeg|gif)
    在这里插入图片描述

1.3.3 正则表达式语法案例

  1. 校验手机号


  1. const phoneRege = /^1[23456789][0-9]{9}$/
    • 1

  1. 校验邮箱 语法: xxxxx@xxxx.xx


  1. const emailRege = /^[a-zA-Z0-9-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-_]+$/
    • 1

1.3.4 用户新增页面JS

  1. 页面JS
    在这里插入图片描述
  2. 页面URL地址
    在这里插入图片描述

1.3.5 用户新增业务接口

在这里插入图片描述

1.3.6 编辑UserController

在这里插入图片描述

1.3.7 编辑UserService

在这里插入图片描述

1.4 数据自动填充

1.4.1 需求分析

通过数据库进行 “更新” 操作,会修改数据库中的创建时间/修改时间. 每张表都有类似的操作. 所以应该抽取为一个公共API进行业务调用.
在这里插入图片描述

1.4.2 数据自动填充功能

在这里插入图片描述

1.4.3 编辑POJO属性

说明: 设定POJO属性 什么时候实现自动填充.
在这里插入图片描述

1.4.4 实现MP自动填充

说明: MP对外暴露了一个自动填充的接口MetaObjectHandler ,用户只需要实现该接口,并且重写其中的方法.即可以实现自动填充的功能.

@Component //将对象交给Spring容器管理 不属于C/S/M
public class MyMetaObjectHandler implements MetaObjectHandler {

//入库操作时调用 created/updated
//setFieldValByName(arg1,arg2,arg3)
//arg1: 自动填充的字段名称 arg2: 自动填充的值 arg3: metaObject 固定写法
@Override
public void insertFill(MetaObject metaObject) {
//设定时间变量
Date date = new Date();
this.setFieldValByName(“created”,date,metaObject);
this.setFieldValByName(“updated”,date,metaObject);
}
//更新操作时调用 updated
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName(“updated”,new Date(),metaObject);
}
}

标签:CGB2104,分页,填充,1.3,正则表达式,MP,Day13,pageResult
来源: https://blog.csdn.net/weixin_57695156/article/details/118699009