Controller
- @RestController
- @RequestMapping("/path")
Controller内方法
@GetMapping("/path/{xxx}")
@PostMapping("/path")
POST处理函数参数
@RequestBody // 将Json体参数值按照参数名传入类内对应字段中
GET处理函数参数
@PathVariable // 按名称获取请求路径中的变量,如上文中的`{xxx}`
将参数值按照参数名传入RequestDto中不需要额外加注解,直接将对象作为形参就可以
Entity
@TableName("table_name")
@TableName(value = "table_name", autoResultMap = true)
实体类字段
@TableField(value = "tags", typeHandler = JacksonTypeHandler.class)
@TableId(value = "id", type = IdType.ASSIGN_ID)
MyBatis默认将查询结果中的列值映射到实体类中变量名与列名相同的属性(变量)中。对于列名与变量名有差异,即含有@TableField
声明的实体来说,需要用@TableName(autoResultMap=true)
标注,以生成新的ResultMap,用于处理数据库行与实体类的映射。
@TableField
的typeHandler
属性用于指定处理属性
@TableId的type属性用于标识数据库主键生成策略
AUTO
:自动填充,数据库自增,适用于主键由数据库生成的情况。NONE
:无状态,不进行任何主键处理,适用于手动输入主键值的情况。INPUT
:手动输入,适用于手动指定主键值的情况。ASSIGN_ID
:全局唯一ID,可以是数字类型或字符串类型,使用雪花算法等生成全局唯一ID。ASSIGN_UUID
:全局唯一UUID,使用 UUID 生成全局唯一标识。
Request类
@DateTimeFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat
的pattern
可以基于以下时间描述方式定义:
- yyyy:四位数的年份,如 2021。
- MM:两位数的月份,如 09。
- dd:两位数的日期,如 23。
- HH:24小时制的小时,如 13。
- mm:分钟,如 45。
- ss:秒数,如 30。
- SSS:毫秒数,如 123。
- E:星期几的简称,如 Mon。
- EEE:星期几的缩写,如 Fri。
- EEEE:星期几的全称,如 Tuesday。
- MMMM:月份的全称,如 September。
- MMM:月份的缩写,如 Sep。