引言
I. 预备知识
1.1 mysql 各字段类型存储文本信息的最大值
- text,最大65535字节
- mediumtext,最大16777215字节
- longtext,2的32次方减1个,即4294967295个字节
1.2 集成mybatis-plus、web、mysql等相关依赖
代码语言:javascript复制<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
1.3 配置application.yml
代码语言:javascript复制# 服务端口
server:
port: 7005
spring:
redis:
datasource:
II 查询相关
- Wrapper:条件构造抽象类,最顶端父类;
- AbstractWrapper:用于查询条件封装,生成sql的where条件;
- AbstractLambdaWrapper:Lambda语法使用Wrapper统一处理解析lambda获取column。
- LambdaQueryWrapper:用于lambda语法使用的查询Wrapper;
- LambdaUpdateWrapper:Lambda更新封装Wrapper;
- QueryWrapper:Entity对象封装操作类,不是用lambda;
- UpdateWrapper:Update条件封装,用于Entity对象更新操作。
2.1 排除指定字段
应用场景:排除标识字段,如密码、密钥、公钥、私钥。
方式1:通过querywrapper中的select方法来排除
代码语言:javascript复制.select("需要的数据库列")
select(CusArticle.class, i -> !i.getColumn().equals("content"))//这种写法equals里面写的是数据库字段名称
.select(CusArticle.class,info -> !info.getProperty().equals("content"))//这种写法equals里面写的是java类中的字段名称
方式2:通过@TableField()
代码语言:javascript复制@TableField(exist = false)
案例
代码语言:javascript复制 List<String> excludeFields = Arrays.asList("secretKey","privateKey","publicKey");
// lambda.select(TFacFacilitatorChannel.class, i -> !i.getColumn().equals("secret_key"));//mybatis-plus queryWrapper排除指定字段,equals里面写的是数据库字段名称
lambda.select(TFacFacilitatorChannel.class, i -> !excludeFields.contains(i.getProperty()));//mybatis-plus queryWrapper排除指定字段,equals里面写的是java类中的字段名称
III 更新相关
3.1 根据条件批量修改字段信息
查询对应类型数据,先把之前的设置为失效,保留历史配置信息。
代码语言:javascript复制 // 查询对应类型数据,先把之前的设置为失效,保留历史配置信息。 LambdaUpdateWrapper<OrganPayRate> updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(OrganPayRate::getState, EEnableState.Deactivate); updateWrapper.eq(OrganPayRate::getFacilitatorId, organ.getFacilitatorId()); updateWrapper.eq(OrganPayRate::getTagsId, organ.getTagsId()); updateWrapper.eq(OrganPayRate::getType, input.getType()); OrganPayRateService.update(updateWrapper);
see also
公众号:iOS逆向