MyBatis-Plus非表字段的三种处理方法小结
目录
- MyBatis-Plus非表字段的处理方式
- 1、使用关键字
- 2、关键字static
- 3、使用@TableField注解
- mybatisplus 非数据库字段设置
- 使用transient修饰
MyBatis-Plus非表字段的处理方式
1、使用关键字
transient修饰字段,不让这个字段参与序列化
//备注 private transient String remark;
2、关键字static
mybatis不会给static构建setter和getter,需要自己构建setter和getter方法,全类只有一份,没有每个对象都有。
//备注 private static String remark; public static void setRemark(String remark) { User.remark = remark; } public static String getRemark() { return remark; }
3、使用@TableField注解
把exist设置为false,可以保证每个对象都有。
@TableField(exist = false) private String remark;
mybatisplus 非数据库字段设置
transient Dept dept;
使用transient修饰
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。
然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。
@TableField(exist = false)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Mybatis-Plus select不列出全部字段的方法
mybatis-plus select查询语句默认是查全部字段,有两种方法可以指定要查询的字段 CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主键', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年龄', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `manage
-
mybatis plus怎么忽略映射字段
其实mybatis plus是比mybatis优秀的mybatis有的,他全有,它没的,或者不优秀的地方,mybatis plus全优秀,所以晚的总比早的好. 今天要说的是: 忽略字段问题,我被这个坑了好长时间,我开发项目呐有个需求是忽略数据库中字段,但是实体类还要有,我操,我目前的知识告诉我,@Transient这个是很好的选择,我操,我于是,开始搞,忘了说了,我的数据库中间件是mybatis plus,搞的我烦,先是看网上的,发现无论在字段上加还是在get方法上加,都不行,最后我配置文件又试
-
mybatis-plus 返回部分字段的解决方式
mybatis-plus的代码生成器会在实体类中生成数据库所有字段,我们去用mapper接口查询时,会返回数据库所有的字段. 但有些字段不是我们想要的,比如:deleted,所以我们可以在不需要的字段上面加@JsonIgnore注解,返回给前端的时候会自动把这个字段去除. 补充知识:Mybatis-Plus只查询特定字段与创建子类方法 Mybatis-Plus查询特定字段例子: Seal seal = sealService.selectOne( new EntityWrapper<Seal>
-
详解mybatis-plus实体类中字段和数据库中字段名不对应解决办法
在使用mybatis或者mybatis-plus时候,有些时候会出现数据库的字段名和实体类的字段名不一致的情况,如果运行那么这个字段就会无法进行自动映射而报错.这里就以我的数据库name字段名和这里的实体类的u_name字段名为例. 解决办法有以下三种 方法一: 将数据库中的字段和实体类中的字段名修改成一样的名字 方法二: 如果是自定以mapper.xml文件中手写的sql查询语句,可以给字段起一个别名例如这里就可以写成select name as u_name from- 方法三: 使用注解@
-
MyBatis-Plus非表字段的三种处理方法小结
目录 MyBatis-Plus非表字段的处理方式 1.使用关键字 2.关键字static 3.使用@TableField注解 mybatisplus 非数据库字段设置 使用transient修饰 MyBatis-Plus非表字段的处理方式 1.使用关键字 transient修饰字段,不让这个字段参与序列化 //备注 private transient String remark; 2.关键字static mybatis不会给static构建setter和getter,需要自己构建setter和g
-
SQL中的三种去重方法小结
目录 distinct group by row_number 在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做去重. 在 MySQL 中通常是使用 distinct 或 group by子句,但在支持窗口函数的 sql(如Hive SQL.Oracle等等) 中还可以使用 row_number 窗口函数进行去重. 举个栗子,现有这样一张表 task: task_id order_id start_time 1 123 2020-01-05 1 2
-
springboot ApplicationContextInitializer的三种使用方法小结
目录 ApplicationContextInitializer的三种使用方法 概述 1.使用spring.factories方式 2.application.properties添加配置方式 3.直接通过add方法 ApplicationContextInitializer都干了些什么 ApplicationContextInitializer的三种使用方法 概述 ApplicationContextInitializer是在springboot启动过程(refresh方法前)调用,主要是在A
-
Mybatis传递多个参数的三种实现方法
方案一 Dao层的函数方法 1 Public User selectUser(String name,String area); 对应的Mapper.xml <select id=" selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,
-
js ie非ie浏览器的几种判断方法小结
最近在 司徒正美js 全世界最短的IE浏览器判断代码 一文,看到只有6byte的判断ie与非ie的方法.其代码如下: if(!+[1,])alert("这是ie浏览器"); else alert("这不是ie浏览器"); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 其实有很多判断的方法,大都是根据浏览器的特性来的. 比如库prototype的方法是:!!(window.attachEvent && navigator.userAgen
-
spring与mybatis三种整合方法
1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean. spring-mybatis.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3
-
php递归函数三种实现方法及如何实现数字累加
递归函数在编程中是比较常用的一类函数,其特点是函数自身可以调用自身,但是必须在调用自身前有条件判断,否则会导致无限调用下去.本文列出了三种递归函数实现方法,第一种利用引用做参数,第二种利用全局变量,第三种利用静态变量,理解此类问题需要有点基础,包括对全局变量,引用,静态变量的理解,也需对他们的作用范围有所理解.在这不废话了,具体介绍请看下文. 第一种方法:利用引用做参数 先不管引用做不做参数,必须先明白引用到底是什么?引用不过是指两个不同名的变量指向同一块存储地址.本来每个变量有各自的存储地址,
-
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
首先,大家都知道,jQuery事件触发时有2种机制,一种是事件委托,另一种是事件冒泡(IE情况暂时不考虑).拿click事件做例子,先附上一段代码: html: <body> <div id="box"> <p id="btn">我是按钮</p> </div> </body> style: .hid{ display:none; } script: $('#box').click(functio
-
C#使用DataSet Datatable更新数据库的三种实现方法
本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参考之用.具体方法如下: 一.自动生成命令的条件 CommandBuilder 方法 a)动态指定 SelectCommand 属性 b)利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteCommand.InsertCommand 和 UpdateCommand
-
C#多态的三种实现方式(小结)
C#实现多态主要有3种方法,虚方法,抽象类,接口 1 虚方法 在父类的方法前面加关键字virtual, 子类重写该方法时在方法名前面加上override关键字,例如下面的Person类的SayHello方法 class Person { public Person(string name) { this.Name = name; } string _name; public string Name { get => _name; set => _name = value; } //父类方法加v
随机推荐
- js+css简单实现网页换肤效果
- Kotlin 基础教程之泛型
- 详解Objective-C设计模式编程中对备忘录模式的运用
- PHP中构造函数和析构函数解析
- Android制作漂亮自适布局键盘的方法
- 用ajax xml的数据读取的HelloWorld程序
- Android自动测试工具Monkey
- 一段脚本实现自动备份并保存最近几天的SQL数据库
- Win2008 R2 64Bit下IIS环境安装memcache和memcached服务端的方法
- java中实现递归计算二进制表示中1的个数
- Android编程设置屏幕亮度的方法
- asp.net System.Guid ToString五种格式
- 微信小程序数据存储与取值详解
- 易语言高级表格选择任意行列获取内容的代码示例
- 基于vue写一个全局Message组件的实现
- mysql 5.7.24 安装配置方法图文教程
- Vue组件库发布到npm详解
- springboot添加https服务器的方法
- 易语言取整命令使用讲解
- laravel model模型处理之修改查询或修改字段时的类型格式案例