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

注册网站地址湘潭市网站建设科技有限公司

注册网站地址,湘潭市网站建设科技有限公司,网站在百度的图标显示不正常,泉州网站制作推广在MyBatis Plus中#xff0c;自动填充数据是一种非常实用的功能#xff0c;它可以自动地为一些字段设置默认值#xff0c;比如创建时间和更新时间。对于多对多关系来说#xff0c;虽然自动填充主要针对单一实体的字段#xff0c;但在某些情况下#xff0c;你可能也需要在…在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 ListCourse 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 ListStudent 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 BaseMapperStudent {// 定义自定义方法 }Mapper public interface CourseMapper extends BaseMapperCourse {// 定义自定义方法 }Mapper public interface StudentCourseMapper extends BaseMapperStudentCourse {// 定义自定义方法 }Service层定义 Service public class StudentService {Autowiredprivate StudentMapper studentMapper;Autowiredprivate StudentCourseMapper studentCourseMapper;public void addStudentWithCourses(Student student, ListLong courseIds) {studentMapper.insert(student); // 插入学生ListStudentCourse 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 ListLong courseIds) {studentService.addStudentWithCourses(student, courseIds);} }总结 上述示例展示了如何在实体类中使用MyBatis Plus的自动填充功能。 对于多对多关系我们定义了一个中间表并在Service层手动处理了多对多关系的插入。 如果有更复杂的多对多关系需求你可以根据具体情况进行调整。
http://www.tj-hxxt.cn/news/135369.html

相关文章:

  • wordpress调用百度网盘视频播放器seo推广主管
  • 网页搜索一个网站全包30条新闻摘抄
  • 建设网站银行网站不备案有什么影响
  • html5 做手机网站wordpress 加下载
  • 安吉做网站南宁网站建设是什么
  • 网站备案能查到什么东西网页游戏浏览器
  • 网站建立的连接不安全网站关键词排名消失
  • 提高网站建设水平无法与wordpress建立连接
  • 网站建设方案主要是做网站资源存储
  • php外贸网站做网站的市场前景
  • 网站建设查看框架的源代码一个企业网站如何能放到互联网上 vps
  • 聊城网站建设潍坊如何创建wordpress
  • 聊城手机站网站公司电话wordpress get_pages()
  • 温岭网站建设公司珠海外贸网站建设
  • 如何做网站布局优化推广类软文
  • 网站开发报价表格江阴招聘网站建设学徒
  • 网站建设表的设计固阳网站建设
  • 哪个网站可以做代码题目网站开发实现的环境
  • 福州网站建设企业哪家好?沈阳市建设工程信息网站
  • 网站微信二维码侧边栏漂浮框怎样建设个人影视网站
  • 青岛仿站定制模板建站网站建设的优点与不足
  • 普通网站建设的缺陷网站文明专栏建设
  • 响应式环保网站wordpress分类随机文章
  • 淘客必须做网站网站底部流程
  • 网站开发面板常州网站建设推广
  • 做网站建设出路在哪里深圳网站设计go
  • 优惠券网站怎么做的昆明网站制作工具
  • 保定企业建站程序加强心理咨询网站的建设
  • 网站建设预算模板西安做推广优化的公司
  • 江门建站网站模板做商城网站应该用什么程序