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

做网站一天能接多少单山东百度推广代理

做网站一天能接多少单,山东百度推广代理,无锡做网站建设,网站后台如何做文件下载连接文章目录 Mybatis-plus实现自动注入定义 MetaObjectHandler配置 MyBatis-Plus 使用 MetaObjectHandler实体类字段注解使用服务类进行操作测试 Jpa启用审计功能实现自动注入添加依赖启动类启用审计功能实现AuditorAware接口实体类中使用审计注解 总结 自动注入创建人、创建时间、…

文章目录

  • Mybatis-plus实现自动注入
    • 定义 MetaObjectHandler
    • 配置 MyBatis-Plus 使用 MetaObjectHandler
    • 实体类字段注解
    • 使用服务类进行操作测试
  • Jpa启用审计功能实现自动注入
    • 添加依赖
    • 启动类启用审计功能
    • 实现AuditorAware接口
    • 实体类中使用审计注解
  • 总结

自动注入创建人、创建时间、修改人、修改时间需要根据使用的技术栈进行区别处理,本文介绍Jpa和Mybatis-plus两种方式进行自动注入

Mybatis-plus实现自动注入

在使用 MyBatis-Plus 进行数据库操作时,我们经常需要自动处理一些字段,比如创建人、创建时间、修改人、修改时间等。MyBatis-Plus 提供了多种方式来自动填充这些字段,主要通过 MetaObjectHandler 接口实现。

定义 MetaObjectHandler

首先,你需要定义一个实现了 MetaObjectHandler 接口的类,并重写 insertFill 和 updateFill 方法,用于设置默认的创建人和修改人、创建时间和修改时间。

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.util.Date;@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {// 创建人this.setFieldValByName("createBy", "admin", metaObject);// 创建时间this.setFieldValByName("createTime", new Date(), metaObject);// 修改人this.setFieldValByName("updateBy", "admin", metaObject);// 修改时间this.setFieldValByName("updateTime", new Date(), metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {// 修改人this.setFieldValByName("updateBy", "admin", metaObject);// 修改时间this.setFieldValByName("updateTime", new Date(), metaObject);}
}

配置 MyBatis-Plus 使用 MetaObjectHandler

确保你的 Spring Boot 应用中已经包含了 MyBatis-Plus 的自动配置,通常在你的 Spring Boot 启动类或者配置类中添加如下配置:

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.yourpackage.mapper") // 确保扫描到你的 Mapper 接口包路径
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

实体类字段注解

在你的实体类中,使用 @TableField 注解标记需要自动填充的字段。例如:

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;@TableName("your_table")
public class YourEntity {@TableIdprivate Long id;private String name;@TableField(fill = FieldFill.INSERT) // 仅在插入时填充private String createBy;@TableField(fill = FieldFill.INSERT) // 仅在插入时填充private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE) // 在插入和更新时填充private String updateBy;@TableField(fill = FieldFill.INSERT_UPDATE) // 在插入和更新时填充private Date updateTime;// getters and setters...
}

使用服务类进行操作测试

现在,当你使用 MyBatis-Plus 的 Service 类进行数据的插入或更新操作时,MyMetaObjectHandler 中的逻辑会自动触发,填充相应的字段。例如:

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.yourpackage.mapper.YourEntityMapper; // 确保这是你的 Mapper 接口全名路径
import com.yourpackage.entity.YourEntity; // 确保这是你的实体类全名路径
import org.springframework.transaction.annotation.Transactional;@Service
public class YourEntityService extends ServiceImpl<YourEntityMapper, YourEntity> {@Transactional // 确保操作在事务中执行,以便自动填充字段正确工作。public void createEntity(YourEntity entity) {this.save(entity); }

Jpa启用审计功能实现自动注入

添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>

启动类启用审计功能

@SpringBootApplication
@EnableJpaAuditing
public class ManageApplication {public static void main(String[] args) {SpringApplication.run(ManageApplication.class, args);}}

实现AuditorAware接口

@Component
public class SpringSecurityAuditorAware implements AuditorAware<String> {@Overridepublic Optional<String> getCurrentAuditor() {Authentication authentication = SecurityContextHolder.getContext().getAuthentication();if (authentication != null && authentication.isAuthenticated()) {// 获取当前登录用户名String username = authentication.getName();return Optional.of(username);}return Optional.of(authentication.getPrincipal().toString());}
}

实体类中使用审计注解

使用 @CreatedBy、@CreatedDate、@LastModifiedBy 和 @LastModifiedDate 注解来自动记录和更新创建和修改信息。

public class BaseEntity {@TableId(type = IdType.ASSIGN_ID)String id;@CreatedByString createId;@CreatedDate@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date createDate;@LastModifiedByString modifyId;@LastModifiedDate@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date modifyDate;}

总结

Mybatis-plus经过验证可以实现自动注入,Jpa审计功能暂时未进行验证。

http://www.dtcms.com/wzjs/449997.html

相关文章:

  • 怎么介绍自己做的网站搜索引擎优化需要多少钱
  • 自己使用原生php做网站性能b站推广入口在哪
  • 视频网站开发宁波seo在线优化哪家好
  • 可道网站建设360关键词推广
  • 阿里云网站备案后广告推广图片
  • 夸网站做的好怎么夸网络推销
  • 免费域名网站搭建新闻头条今日新闻60条
  • 建设部网站继续教育关键词挖掘站长
  • 上海网站排名优化嘉兴seo外包公司费用
  • 公司网站现状网页制作成品
  • 怎么知道网站的空间是谁做的重庆seo海洋qq
  • 哪里找做鸭子的网站河北网站seo策划
  • 网站开发哪里便宜郑州seo顾问热狗hotdoger
  • 王也高清壁纸第三季关于seo如何优化
  • 石家庄网站建设人员打开一个网站
  • 济南网站设计公司排名微信广告平台
  • 政府网站建设 调研报告网站推广的一般流程是
  • 静态网页制作网站推广发帖网站
  • 互联网网站制作公司什么叫做关键词
  • 上海高档网站建设长沙正规竞价优化服务
  • 查看网站浏览量全国疫情的最新数据
  • 广州高铁新建站在哪里阿里指数查询官网入口
  • 政府信息网站安全建设网店代运营合同
  • 网站控制板面最佳磁力吧ciliba搜索引擎
  • 网站建设颜色注意事项培训网登录入口
  • 电子商务网站建设与管理杭州新站整站seo
  • 临沂网站建设那家好界首网站优化公司
  • 图书馆网站建设站长统计入口
  • 网站建设的相关政策百度网盘提取码入口
  • 电子商务专业毕业后干什么旅游seo整站优化