java开发MyBatis中常用plus实体类注解符详解

目录
  • mybatis-plus常用注解符
    • 1. 表名注解(@TableName)
    • 2. 主键注解(@TableId)
    • 3. 属性注解(@TableField)

mybatis-plus常用注解符

1. 表名注解(@TableName)

作用:实体类和数据库中表建立对应关系:如

@TableName("thotset")
public class HotsetEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	private Integer fclass;
	private Integer fpwid;
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date fbdate;
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date fedate;
}

代表:HotsetEntity 对应数据库中表为thotset

2. 主键注解(@TableId)

作用:标识实体类的属性对应的是表中的主键,还配置主键的生成策略,如:

@TableName("tsvbase")
public class PaintLifeEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	@TableId(type = IdType.AUTO)
	private String recid;

	private String fcode;
	private String fname;
	}

代表:recid是表中的主键,主键的生成策略为自增类型。
在mybaits-plus中主键生成策略及注意事项
IdType.ASSIGN_ID: 主键类型为长整型或字符串,使用这类主键时要注意,在前端长整形在数据转换时和整型长度不匹配问题,会引发错误。
IdType.ASSIGN_UUID:主键类型为String,为32为不重复字符串。注意该字符串为乱序,使用它时注意一条记录,页面刷新后新增的记录并非最后一条或第一条,经常找不到新增的记录,维护时用户体验很差。
IdType.AUTO:自增;
IdType.input: 插入数据前需要使用其他方式得到主键,将得到的数据赋值到主键上。
IdType.NONE:无状态,类同于Input

注 mybatis-plus其他主键注解在高版本已经废弃

3. 属性注解(@TableField)

作用:该属性非主键属性,解决属性名与字段名不匹配问题、属性是否是数据表中字段、insert、update生成策略等。如:

@TableName("thotset")
public class HotsetEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	private Integer fclass;
	private Integer fpwid;
	@TableField(vlaue="fb_date")
	private Date fbdate;
	@TableField(exist=false)
	private Date fedate;
}

第一个注解代表属性fbDate对应的数据库字段名为fb_date
第二个注解代表fedate属性不与表中的字段匹配,在新增、修改时,不用去匹配

常用的就这三个,其他注解不再详细描述。

以上就是java开发MyBatis常用plus实体类注解符详解的详细内容,更多关于MyBatis常用plus实体类注解的资料请关注我们其它相关文章!

时间: 2021-10-12

MybatisPlus中@TableField注解的使用详解

实现 官方文档说明: com.baomidou.mybatisplus.annotations.TableField TableField注解新增属性 update 预处理 set 字段自定义注入 (讲解:比如我们使用mybatisplus自带的insert()方法向数据库插入数据时,假设我们给age字段赋值为1,但是我们在age字段上的@TableField注解里面加了update="%s+1",那么真真插入到数据库的值就是age=2,而不是age+1了) 例如: @TableFie

mybatis plus实体类中字段映射mysql中的json格式方式

目录 mybatis plus实体类中字段映射mysql中的json格式 1.实体类中有个属性是其他对象 2.那么取出时怎么进行映射呢,有分为两种情况 mybatis-plus 实体 json 处理 本文总共三个步骤 mybatis plus实体类中字段映射mysql中的json格式 1.实体类中有个属性是其他对象 或者是List:在数据库中存储时使用的是mysql的json格式,此时可以用mybatis plus的一个注解 @TableField(typeHandler = JacksonTy

mybatis-plus实体类主键策略有3种(小结)

mybatis plus 实体类主键策略有3种( 注解 > 全局 > 默认 ) 当IdType的类型为ID_WORKER.ID_WORKER_STR或者UUID时,主键由MyBatis Plus的IdWorker类生成,idWorker中调用了分布式唯一 ID 生成器 - Sequence 1.注解方式 @TableId(type = IdType.AUTO)在实体类增加注解即可 @TableName("t_article") public class TArticle e

详解mybatis-plus使用@EnumValue注解的方式对枚举类型的处理

前言: 在开发中,我们经常会用到诸如:性别(男/女).审核状态(未审核/审核中/已审核)之类的数据,通常会在数据库中使用一个数字类型的字段来标识,比如:性别,用1来表示男,2来表示女,而在代码中一般会定义成enum类型或静态常量来避免在业务代码中出现"0/1"这种魔法值,但是在数据库存储及前后端交互的时候,就需要进行转化:无论是在SQL.前端还是后台转化,都需要写相应的代码,无形中增加了开发工作量:mybatis-plus实现了对该问题的处理,能够让我们在查询数据库时,直接能够返回字段

详解Mybatis框架SQL防注入指南

前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少.新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路. 一.Mybatis的SQL注入 Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件.Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成.

详解MyBatis XML配置解析

MyBatis核心配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environm

详解Mybatis 传递参数类型为List的取值问题

问题描述: 参数传递为List时: 当传递一个 List 实例或者数组作为参数对象传给 Mybatis.此时,Mybatis 会自动将它包装在一个 Map 中,用名称在作为键.List 实例将会以"list" 作为键,而数组实例将会以"array"作为键.所以,当我们传递的是一个List集合时,mybatis会自动把我们的list集合包装成以list为Key值的map. DAO 层: List<User> selectUserByIDs( List ID

详解MyBatis配置typeAliases的方法

0x00:前言参考 之前的<MyBatis 中 SqlMapConfig 配置文件详解>记了一下 MyBatis 中的核心配置文件各个标签的作用和使用场景,这篇文章细说一下配置文件中 typeAliases 标签的详细使用. 0x01:标签介绍 在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType.resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声明该类型的全路径,java.lang.String,或者 cn

详解MyBatis的getMapper()接口、resultMap标签、Alias别名、 尽量提取sql列、动态操作

一.getMapper()接口 解析:getMapper()接口 IDept.class定义一个接口, 挂载一个没有实现的方法,特殊之处,借楼任何方法,必须和小配置中id属性是一致的 通过代理:生成接口的实现类名称,在MyBatis底层维护名称$$Dept_abc,selectDeptByNo() 相当于是一个强类型 Eg 第一步:在cn.happy.dao中定义一个接口 package cn.happy.dao; import java.util.List; import cn.happy.e

详解MyBatis Generator自动创建代码(dao,mapping,poji)

连接的数据库为SQL server2008,所以需要的文件为sqljdbc4.jar 使用的lib库有: 在lib库目录下新建一个src文件夹用来存放生成的文件,然后新建generatorConfig.xml 里面代码为: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis G

详解MyBatis直接执行SQL查询及数据批量插入

一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel"> <result column="instanceid" property="instanceID" jdbcType="VARCHAR" /> <result column="insta

详解MyBatis逆向工程

1.什么是mybatis逆向工程 在使用mybatis时需要程序员自己编写sql语句,针对单表的sql语句量是很大的,mybatis官方提供了一种根据数据库表生成mybatis执行代码的工具,这个工具就是一个逆向工程. 逆向工程:针对数据库单表-->生成代码(mapper.xml.mapper.java.pojo..) mybatis-generator-core-1.3.2.jar-逆向工程运行所需要的jar核心 包 2.配置逆向工程的配置文件 配置文件generatorConfig.xml

详解Mybatis中的 ${} 和 #{}区别与用法

Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${} 我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串,举个例子: select * from student where student_name = #{name} 预编译后,会动态解析成一个参数标记符?: select * from student where student_name

详解mybatis plus使用insert没有返回主键的处理

项目使用springboot搭建.最初的时候是使用mybatis,后来升级到mybatis plus.按照mp的官网介绍,使用mp的insert方法,对于自增的数据库表,mp会把主键写入回实例的对应属性.但实际操作起来,却没有主键. entity 类设置如下: @TableName(value = "USERINFO") public class UserInfo { /** * 指定自增策略 */ @TableId(value = "user_id",type =