<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      springboot~mybatis統一處理公有字段

      對于實體中包含有公共字段,像create_at,create_time,update_at,update_time來說,我們沒有必要在每個實體的crud操作中復制同樣的代碼,這樣代碼的味道很壞,我們應該使用mybatis的攔截器機制,將公共字段統一處理;當然mybatis-puls在實現上更加優雅,它幫我們封裝了MetaObjectHandler接口,我們可以重寫insertFillupdateFill來完成公共字段的統一填充,詳細可看我這篇文章《springboot~MyBatisPlus中使用@TableField完成字段自動填充》。

      mybatis中的實現

      • 需要實現org.apache.ibatis.plugin.Interceptor接口

      • 在intercept方法中實現業務核心邏輯

      • 在SqlSessionFactory中注冊你的intercept類

      • 攔截器代碼

      @Intercepts({ @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) })
      public class FillCreateAndUpdateFieldInterceptor implements Interceptor {
      
      	static final Logger logger = LoggerFactory.getLogger(FillCreateAndUpdateFieldInterceptor.class);
      
      	@Override
      	public Object intercept(Invocation invocation) throws Throwable {
      		Object[] args = invocation.getArgs();
      		MappedStatement ms = (MappedStatement) args[0];
      		Object parameter = args[1];
      		if (ms.getId().contains("insert") || ms.getId().contains("update")) {
      			if (SecurityUtils.getAuthentication() != null) {
      
      				if (parameter instanceof BaseEntity) {
      					BaseEntity entity = (BaseEntity) parameter;
      					if (ms.getId().contains("insert")) {
      						entity.setCreateBy(SecurityUtils.getAuthentication().getName());
      						entity.setCreateTime(new Date());
      					}
      					entity.setUpdateBy(SecurityUtils.getAuthentication().getName());
      					entity.setUpdateTime(new Date());
      
      				}
      		 }
      	}
      }
      
      • 自定義SqlSessionFactory的bean
      @Bean
      public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
      	String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
      	String mapperLocations = env.getProperty("mybatis.mapperLocations");
      	String configLocation = env.getProperty("mybatis.configLocation");
      	typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
      	VFS.addImplClass(SpringBootVFS.class);
      
      	final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
      	sessionFactory.setDataSource(dataSource);
      	sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
      	sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
      	sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
      	SqlSessionFactory result = sessionFactory.getObject();
      
      	// 注冊自定義攔截器
      	result.getConfiguration().addInterceptor(new FillCreateAndUpdateFieldInterceptor());
      	return result;
      }
      

      通過上面的代碼,我們就完成了公共字段的統一處理。

      posted @ 2024-04-08 13:06  張占嶺  閱讀(449)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费特黄夫妻生活片| 成av免费大片黄在线观看| 欧美成本人视频免费播放| 丰满高跟丝袜老熟女久久| 亚洲精品日韩中文字幕| 色综合久久蜜芽国产精品| 欧洲美熟女乱av在免费| 午夜福利在线观看6080| 精品乱人伦一区二区三区| 中文字幕日韩国产精品| 日韩av在线一区二区三区| 日韩欧美一卡2卡3卡4卡无卡免费2020| 色综合AV综合无码综合网站| 亚洲av二区三区在线| 日韩一区二区三区女优丝袜| 天堂网亚洲综合在线| 97视频精品全国免费观看| 曰韩无码二三区中文字幕| 四虎库影成人在线播放| 色综合 图片区 小说区| 人妻放荡乱h文| 中文字幕日韩有码国产| 国产亚洲精品第一综合麻豆| 色婷婷亚洲精品综合影院| 国产超碰无码最新上传| 少妇爽到呻吟的视频| 国产成人亚洲综合| 人妻少妇无码精品专区| 九九久久人妻一区精品色| 视频一区视频二区视频三区| 福利一区二区1000| 一本色道婷婷久久欧美| 亚洲欧美牲交| 国产高清无遮挡内容丰富| 91密桃精品国产91久久| 亚洲国产色婷婷久久99精品91 | 精品无人乱码一区二区三区| 国产亚洲无线码一区二区| 国产精品人妻在线观看| 久久日产一线二线三线| 国产欧美在线观看不卡|