当前位置: 首页 > news >正文

丹江口做网站苹果被曝开发搜索引擎对标谷歌

丹江口做网站,苹果被曝开发搜索引擎对标谷歌,潍坊市住房和城乡建设厅网站,宁波seo推广咨询在MyBatis Plus中,自动填充数据是一种非常实用的功能,它可以自动地为一些字段设置默认值,比如创建时间和更新时间。对于多对多关系来说,虽然自动填充主要针对单一实体的字段,但在某些情况下,你可能也需要在…

在MyBatis Plus中,自动填充数据是一种非常实用的功能,它可以自动地为一些字段设置默认值,比如创建时间和更新时间。对于多对多关系来说,虽然自动填充主要针对单一实体的字段,但在某些情况下,你可能也需要在创建或更新实体时自动填充与之相关的多对多关系。
下面我将展示如何在实体类中使用MyBatis Plus的自动填充功能,并且给出一个简单的多对多关系示例。


实体类定义
假设我们有两个实体类:Student 和 Course,它们之间存在多对多关系。我们将定义这两个实体类,并为它们添加自动填充字段。

// Student.java
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("student")
public class Student {@TableId(type = IdType.AUTO)private Long id;private String name;@ApiModelProperty(value = "创建时间")@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;@ApiModelProperty(value = "更新时间")@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;@TableField(exist = false)private List<Course> courses;
}// Course.java
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("course")
public class Course {@TableId(type = IdType.AUTO)private Long id;private String name;@ApiModelProperty(value = "创建时间")@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;@ApiModelProperty(value = "更新时间")@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;@TableField(exist = false)private List<Student> students;
}

这里我们使用了@TableField(fill = FieldFill.INSERT)和@TableField(fill = FieldFill.INSERT_UPDATE)注解来指定哪些字段应该在插入时和更新时自动填充。
自动填充处理器
为了使自动填充生效,你需要定义一个MetaObjectHandler实现类,并在Spring容器中注册它。

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());}@Overridepublic void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());}
}

这里我们重写了insertFill和updateFill方法,当实体插入或更新时,这些方法会被自动调用以填充指定的字段。
多对多关系处理
对于多对多关系的处理,你可以选择以下几种方式之一:
使用中间表:定义一个中间表来存储多对多关系,然后在插入或更新实体时,手动处理中间表的插入或更新。
使用注解:如果MyBatis Plus支持多对多关系的注解处理,那么你可以使用相应的注解来简化多对多关系的处理。
由于MyBatis Plus本身并不直接支持多对多关系的注解处理,这里我们采用第一种方式,即定义中间表并手动处理。
中间表定义

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("student_course")
public class StudentCourse {@TableId(type = IdType.AUTO)private Long id;private Long studentId;private Long courseId;@ApiModelProperty(value = "创建时间")@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;@ApiModelProperty(value = "更新时间")@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;
}

Mapper接口定义

@Mapper
public interface StudentMapper extends BaseMapper<Student> {// 定义自定义方法
}@Mapper
public interface CourseMapper extends BaseMapper<Course> {// 定义自定义方法
}@Mapper
public interface StudentCourseMapper extends BaseMapper<StudentCourse> {// 定义自定义方法
}

Service层定义

@Service
public class StudentService {@Autowiredprivate StudentMapper studentMapper;@Autowiredprivate StudentCourseMapper studentCourseMapper;public void addStudentWithCourses(Student student, List<Long> courseIds) {studentMapper.insert(student); // 插入学生List<StudentCourse> studentCourses = courseIds.stream().map(courseId -> new StudentCourse(null, student.getId(), courseId)).collect(Collectors.toList());studentCourseMapper.insertBatch(studentCourses); // 插入多对多关系}
}

Controller定义

@RestController
@RequestMapping("/students")
public class StudentController {@Autowiredprivate StudentService studentService;@PostMappingpublic void addStudentWithCourses(@RequestBody Student student, @RequestParam List<Long> courseIds) {studentService.addStudentWithCourses(student, courseIds);}
}

总结
上述示例展示了如何在实体类中使用MyBatis Plus的自动填充功能。
对于多对多关系,我们定义了一个中间表,并在Service层手动处理了多对多关系的插入。
如果有更复杂的多对多关系需求,你可以根据具体情况进行调整。

http://www.hkea.cn/news/469261/

相关文章:

  • 网站流量seo提升seo排名的方法
  • 做html网站模板下载地址网站页面布局和样式设计
  • 公司网站邮箱费用磁力宅在线搜种子
  • wordpress 缺少临时文件夹刷关键词优化排名
  • 做网站要有什么团队淘宝关键词排名查询工具
  • 开源门户网站源码宁波谷歌seo
  • wordpress+一页一屏seo关键技术有哪些
  • 学校校园网站建设实施方案精准营销的案例
  • 腾讯云服务器可以做网站可以推广发广告的app
  • seo外链友情链接网站运营推广选择乐云seo
  • 做网站 要学 什么语言网站优化公司
  • 天乐测绘网做网站吗搜索引擎广告图片
  • 湖南营销型网站建设多少钱百度关键词优化软件网站
  • 怎样给网站做关键词优化百度词条
  • 做网站哪个平台搭建网站需要什么技术
  • 做gif图的网站简述网络营销的主要方法
  • 做图网站被告seo视频网页入口网站推广
  • 做的网站底部应该标注什么意思免费文案素材网站
  • 企业网站搜索引擎拓客农夫山泉软文300字
  • 青岛黄岛区网站开发武汉seo优化
  • 东莞做网站企业铭会员制营销
  • 做网站设计工资多少钱优化教程网官网
  • 计算机网站建设与维护百度关键词统计
  • wordpress网站实现微信登录google google
  • 网站建设 零基础网站关键词如何优化
  • 如何撤销网站上信息app网站
  • 单页式网站系统每日新闻摘要30条
  • 网站开发公司 广告词优化方案电子版
  • 做便民工具网站怎么样关键词挖掘站长工具
  • 纺织面料做哪个网站好百度站长资源