前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis-plus小技能

mybatis-plus小技能

作者头像
公众号iOS逆向
发布2022-12-19 17:44:22
4310
发布2022-12-19 17:44:22
举报
文章被收录于专栏:iOS逆向与安全

引言

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方法来排除

.select("需要的数据库列")

代码语言:javascript
复制
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逆向

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • I. 预备知识
    • 1.1 mysql 各字段类型存储文本信息的最大值
      • 1.2 集成mybatis-plus、web、mysql等相关依赖
        • 1.3 配置application.yml
        • II 查询相关
          • 2.1 排除指定字段
          • III 更新相关
            • 3.1 根据条件批量修改字段信息
            • see also
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档