CGB2104-Day13
作者:互联网
1. 用户模块管理
1.1 利用MP实现分页查询
1.1.1 编辑UserController
1.1.2 编辑UserService
/
利用MP的方式实现分页查询API说明: selectPage(arg1,arg2)
arg1: MP中的分页对象 固定的arg2: MP分页中的条件构造器
@param pageResult@return
动态Sql: select from user where username like “%admin%”
条件: 如果用户传递query则拼接where条件 否则不拼接where条件/
@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分页规则说明
规则: 需要设定一个拦截器.将分页的Sql进行动态的拼接.
Sql: 规则现在的Sql都支持Sql92标准!!!! 设计理念不同/
@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分析
- 作用域插槽 一般用在循环遍历时,获取单行数据.
- 页面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 正则表达式语法
- 起始/结束
- 次数匹配
- 次数区间用法 {}
例子: 3{3,5} 333 3333 33333 - 任意字符
- 取值范围 []
- 分组写法
案例: 需要匹配图片的类型 xxx.jgp 只要满足其中之一即可 (jpg|png|jpeg|gif)
1.3.3 正则表达式语法案例
- 校验手机号
const phoneRege = /^1[23456789][0-9]{9}$/
- 1
- 校验邮箱 语法: xxxxx@xxxx.xx
const emailRege = /^[a-zA-Z0-9-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-_]+$/
- 1
1.3.4 用户新增页面JS
- 页面JS
- 页面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