mybatis-plus中不等于,mybatis plus该不该用
00-1010 MyBatis-Plus不使用数据库的默认值。Navicat截图如下(网络图片)。如何设置我的Batis-Plus?只使用MyBatis-Plus的注释,而不使用配置数据库。
00-1010有时在设计数据表时,我们希望某些字段使用默认值,比如create_time和update_time,这些值是在数据库中设置的:
` create _ time ` datetime default current _ timestamp注释创建时间,` update _ time ` datetime on update current _ timestamp注释更新时间
目录
也就是说,只要插入create_time和update_time字段,就会使用系统时间。只要更新了,update_time字段也会更新,mysql会自动帮我们做,不需要手动赋值。
00-1010有时候我们的业务是先查询实体对象,然后修改某个值再更新,比如这个:
LambdaQueryWrapperImKnowledgeSearchRecord lambdaQueryWrapper=new lambdaQueryWrapper();lambdaquerywrapper . eq(imknowledge search record :3360 get keyword,keyword);imknowledge search record knowledge search record=this . get one(lambdaQueryWrapper,true);if(knowledge search record==null){ knowledge search record=new imknowledge search record();knowledge search record . set keyword(关键字);knowledge search record . setsearchcount(0);} knowledge search record . setsearchcount(knowledge search record . getsearchcount()1);//knowledge search record . setupdatetime(null);this . update byid(knowledge search record);注意,在上面的实体类中有CreateTime和UpdateTime字段。如果不做任何配置绘制,默认使用MyBatis-Plus。
this.getOne(lambdaQueryWrapper,true);将查询的值赋为参数,然后你会发现update_time字段并没有随着修改而改变,但是这并不符合我们数据表的设计初衷。那么我们该怎么办呢?
/* * *创建时间(数据库自动生成,无需手动赋值)*/@ table field(insert strategy=field strategy . never)private date create time;/* * *修改时间(数据库自动生成,无需手动赋值)*/@ table field(update strategy=field strategy . never)private date update time;使用@TableField批注将插入策略和更新策略设置为FieldStrategy。NEVER,这意味着这两个字段不会添加到SQL中,因此生成的insert和modified SQL语句不会包含这两个字段。
00-1010我们在开发一个项目的时候,尤其是在多模块的项目场景下,可能会遇到一些实体类的mybatis-plus的标注,比如@tableName或者@TableField等。但是如果引入mybatis依赖,就要配置数据库,但实际上有可能这个项目只是一个公共实体类和接口类的公共模块。写这些实体类,接口等。一旦在公共模块中,然后在其他模块中直接依赖公共模块,所以在这种场景下,公共模块不需要连接数据库,自然也不需要配置数据库。
00-1010因为一旦添加了mybatis-plus的maven依赖项,就需要配置数据库,所以我们需要更改另一个依赖项。
如下所示,mybatis-plus-annotation依赖于只包含mybatis-plus的注释。
依赖groupIdcom.baomidou/groupId神器MyBatis-Plus-Annotation/神器ID版本3.2.0/Version/Dependency以上是我的个人体验。希望大家能给我一个参考,支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。