首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Mybatis-Puls 常用注解

value属性 2.2 @TableIdtype属性 3、@TableField 4、@TableLogic ---- 1、@TableName 在使用MyBatis-Plus实现基本CRUD时,...在开发过程中,我们经常遇到以上问题,即实体类所对应表都有固定前缀,例如t_或tbl_ 此时,可以使用MyBatis-Plus提供全局配置,为实体类所对应表名设置默认前缀,那么就不需要在每个实体类上通过...2.1 @TableIdvalue属性 现在有一种情况,若实体类中主键对应属性为id,而表中表示主键字段为uid,此时若只在属性id上添加注解 @TableId,则抛出异常Unknown column...2.2 @TableIdtype属性 type属性用来定义主键策略 常用主键策略: 值 描述 IdType.ASSIGN_ID(默认) 基于雪花算法策略生成数据id,与数据库id是否设置自增无关...此时需要在实体类属性上使用@TableField("username")设置属性所对应字段名 4、@TableLogic 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据

62730

Rpamis-security-技术背景

现有市面上加解密、脱敏组件开源项目众多,比较出名有Mybatis-plus提供Mybatis-mate组件,很可惜代码是闭源、收费,且根据实际使用不能够很好支持嵌套脱敏,多种类型脱敏,动态SQL...此外,加解密和脱敏组件互相分离,虽然开源组件众多,几乎都是重复工作,仍然有很多待解决问题需要完善,没有完整形成一个企业级数据安全解决方案。...TableField(typeHandler = EncryptTypeHandler.class) private String idCard; @TableField(typeHandler...,比如被打上注解实体在序列化后字段均会被脱敏,再如对于该实体本来想打印明文日志信息,打印却只能是脱敏,这对于现有的系统在接入后需要进一步进行代码走查,规避风险 采用自定义序列化器Utils,...,实体字段变为加密字段 可拓展式加密算法、加解密类型处理器、脱敏类型处理器,脱敏切面可开关、切点可配置 可自定义脱敏标识 # 组件原理 具体原理解析可见Rpamis-security-原理解析 (opens

18210

SpringBoot日志收集-Aop方式-存进数据库一起来和我看看咋收集日志吧!!

都已有所成 SpringBoot日志收集-Aop方式-存进数据库 一、前言 1)概述: 2)介绍: 3)使用场景: 二、前期准备 2.1、数据库 2.2、导入依赖 2.3、yml配置文件 2.3、配置自定义...(since 3.3.0,配置后可以忽略不配置步骤2) logic-delete-value: 1 # 逻辑删除值(默认为 1) logic-not-delete-value:...0 # 逻辑未删除值(默认为 0) 2.3、配置自定义log注解类 如果需要收集多种日志的话,可以做扩展,增加注解也可,用编码也可,当然如果项目多的话,那么必然是要抽取出来才是最合适。...(经验不足、如有不妥,请及时提出,蟹蟹各位大佬) /** * 配置自定义log注解类 * @author crush */ @Target(ElementType.METHOD) //注解放置目标位置...(fill = FieldFill.INSERT) private LocalDateTime createTime; /*** 修改时间*/ @TableField(fill

80340

Mybaits-plus实战(三)

Model逻辑删除 数据库对应实体类,继承Model类可以实现AR模式sql语句操作,这里需要注意是,对逻辑删除,官方说明需要实现如下重写方法才能生效,也就是使用实例化对象.deleteById(...,但是插入或更新数据库是不存在;这里你需要做是在要进行插入或修改字段上面加上注解@TableField(fill = FieldFill.INSERT),这里FieldFill有四种选择,如下,它默认是不做处理...级联操作 对自定义语句条件用wrapper包装,实现多表联合查询也可以用链式条件查询 例子基本都在下面了 //可直接在这里定义方法列表,默认只有在类上加注解才会支持方法 @QuerySupport("...查询去字段技巧 之前说过一个,通过加transient,利用jackson或fastjson,在返回前端时候对它做处理去掉对应字段,同时我们又遇到个问题,比如del_flag,该字段往往前端不需要...,在总结此篇时候也让我对此前博客有些技术上修正,比如MetaObjectHandler使用,并不是只能把值放返回对象,它是可以直接插入数据库 mybatis-plus总结工作到现在结束了,知识点应该已经概括了官方文档所有

84220

瑞吉外卖(三)分类管理业务开发

因此这些字段属于公共字段,而且很多表中都有这些字段,我们想要对这些字段进行统一处理 我们可以使用Mybatis Plus提供公共字段自动填充功能 2、代码实现 1、在实体类属性上接入@TableField...注解,指定自动填充策略 @TableField(fill = FieldFill.INSERT) // 插入时填充 private LocalDateTime createTime; @TableField...servletResponse, FilterChain filterChain) throws IOException, ServletException { ... // 4、判断登陆状态,如果登录...().getAttribute("employee"); BaseContext.setCurrentId(empId); log.info("用户登录...super.removeById(id); } 4、创建业务异常CustomException 目录:common package cn.mu00.reggie.common; /** * 自定义业务异常

56520

解决 MyBatis-Plus + PostgreSQL 中 org.postgresql.util.PSQLException 异常

错误截图: 引言 在使用 MyBatis-Plus 和 PostgreSQL 数据库时,有时候会遇到 org.postgresql.util.PSQLException 异常,错误信息为 “conversion...这个异常通常是由于数据库字段类型与实体类属性类型不匹配引起。本文将介绍如何通过在实体类中添加 @TableField 注解并指定参数来解决这个问题。...使用类型转换器: 如果你需要保持Java实体类中id字段为OffsetDateTime类型,你可以考虑使用Spring类型转换器(TypeConverter)或自定义属性编辑器(PropertyEditor...方向二: 解决这个异常方法是通过在实体类中添加 @TableField 注解,并使用 jdbcType 参数来显式指定数据库字段数据类型。...为了解决这个问题,我们可以在实体类中使用 @TableField 注解,并通过 jdbcType 参数明确指定数据库字段数据类型。本文提供解决方案可以帮助您顺利解决这个异常,让您项目顺利运行。

88510

SpringBoot实体类中常用注解(二)

= "光宇编号", example = "TM1234"); 2.3 jackson中注解 2.3.1 @JsonFormat @JsonFormat :它是一个时间格式化注解,比如我们存储在mysql...TableField @TableField : 解决实体类中属性名和表中字段名不一致(非驼峰),还有对象中某个属性不在表中进行忽略。...; // 解决字段名不一致,此时不满足MyBatis配置驼峰和_对应 // 其实这个有个小技巧,就是你可以自定义一个属性名,然后通过@TableField指定它对应数据库表中某个字段值...,那么此时这个自定义属性就存在了数据表中某个字段值,然后可以传递给前端进行响应操作。...@TableField(exist = false)//指明该属性在数据库表字段中不存在 private String address; } @TableField完成字段自动填充操作 实现方式

2.1K01

基于Springboot+MybatisPlus外卖项目瑞吉外卖Day3

瑞吉外卖Day3 创造实属不易,代码笔记全是个人学习理解,希望大家点赞关注支持一下 公共字段填充 一、问题分析 二、实现步骤 1、在实体类属性上加入@TableField注解,指定自动填充策略...可以使用ThreadLocal来解决此问题,它是JDK中提供一个类。 二、什么是ThreadLocal? ​ ThreadLocal并不是一个Thread,而是Thread局部变量。...updateFill方法中调用ThreadLocalget方法来获得当前线程所对应线程局部变量值(用户id)。...方法中 //4、判断登录状态,如果登录,则直接放行 if(request.getSession().getAttribute("employee") !...= null){ log.info("用户登录,用户id为:{}",request.getSession().getAttribute("employee"));

42720

瑞吉外卖实战项目全攻略——总结篇

项目中工具类是借助LocalThread的当前线程储存功能来设置工具类,我们只需要定义LocalThread并给出其方法新方法定义即可 我们给出项目中实例展示: package com.qiuluo.reggie.common...LocalDateTime.now()); metaObject.setValue("updateUser",BaseContext.getCurrentId()); } } 实现类型转换 我们在项目遇到一个简单小问题...: 我们empId设计为Long型,其中数据库为19位,网页JS为16位,这就会导致empId传递时会出现损失 我们通过采用消息转换器来实现传送类型发生改变: 使网页Long型传递过来时变为String...,通常用于业务层功能实现无法实现时抛出异常给用户查看 设置自定义异常主要分为两步: 设置自定义异常类 package com.qiuluo.reggie.common; /** * 自定义业务异常类...,前置mysql主从复制相对比较繁琐 主从复制 我们先来介绍主从复制具体流程: 主库从库设置固定ID,并且给主库设置日志打开 # 进入配置文件 vim /etc/my.cnf # 主库设置 [mysqld

4K20

瑞吉外卖实战项目全攻略——第三天

功能完善 在上面我们已经完成基本公共字段设置,但是我们会注意到我们无法设置相关人信息 因为我们在之前服务层中采用Request来获得当前Session下保存员工id,目前我们无法获得Request...Dish-Setmeal服务层 接下来我们来介绍代码正式实现: 首先去数据库业务层接口定义我们需要实现方法接口: package com.qiuluo.reggie.service; import...工具类使用 在公共字段自动填充部分,我们为了使用ThreadLocal从而创建了相对工具类 我们工具类就是为了便捷操作而使用,我们为了使用相关参数同时多次不用创建实体而直接使用工具类 例如我们...; } public static Long getCurrentId(){ return threadLocal.get(); } } 异常处理 我们平时遇到异常都是产生错误由系统抛出异常...只有真实项目中我们才会需要创建自己定义异常,难点在于异常创建格式以及将异常加入异常处理器中 首先我们需要创建自定义异常: package com.qiuluo.reggie.common; /

55720

SpringBoot参数校验各种正确使用方式

而且本来还打算将本文名称改成SpringBoot参数校验各种失效情景及解决, 思考后发现失效问题较多, 无法一一列举....然后在controller层通过@Validated(value = InsertDO.class) 来定义当前属于哪种操作并和请求实体中定义范围进行比对. 属于对应范围后才会进行参数校验....具体请求方式校验步骤请见下面的介绍: 普通实体 分组 请求实体 groups 可以定义校验生效范围, 表示在操作下用于参数校验注解才会生效....controller方法中请求实体前使用未分组注解, 请求实体具体属性上注解使用分组属性时, 则参数校验不生效 因此建议使用同一个请求实体时不要同时出现这两种方式, 否则可能会出现滥用导致注解失效问题...因此想要实现此效果需要自己自定义注解 (后续有时间的话会出专门文章给出具体实现步骤) //@Valid和@Validated不会同时生效 @PostMapping("/saveGroup")

52910

MyBatisPlus:常用注解

,我们经常遇到以上问题,即实体类所对应表都有固定前缀,例如t或tbl 此时,可以使用MyBatis-Plus提供全局配置,为实体类所对应表名设置默认前缀,那么就不需要在每个实体类上通过@TableName...@TableId中value值在实体类中字段和表结构字段一致情况下我们不用添加,如果不一致,@TableId中value我们需要设置表结构中主键字段。...@TableId中还有一个比较重要属性是Type。Type是用来定义主键生成策略。以下是官网截图这个可以在@TableId中配置,也可以在配置文件中统一配置全局生成策略。...@TableField @TableField注解作用是当实体类中属性和表结构中字段名称不一致情况下来设置对应关系,当然,在MyBatis-Plus中针对实体中是userName而表结构中是...@TableField("name") // 表结构中name属性和name属性对应 private String name; private Integer age; private

63120
领券