国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - mybatis Interceptor對UpdateTime自動處理的實現方法

mybatis Interceptor對UpdateTime自動處理的實現方法

2021-06-18 14:15三不猴 Java教程

這篇文章主要給大家介紹了關于使用mybatis Interceptor對UpdateTime自動處理的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧

前言

一般數據庫的表結構都會有update_time,修改時間,因為這個字段基本與業務沒有太大關聯,因此開發過程中經常會忘記設置這兩個字段的值,本插件就是來解決這個問題。同樣的想生成id,create_time等操作都是可以以同樣的方式解決。想折騰的同學還可以通過這中方式自己寫個分頁插件。

閑話少說上代碼。

1. 先寫一個自定義注解標注是update_time

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.zb.iscrm.annotation;
 
import java.lang.annotation.elementtype;
import java.lang.annotation.retention;
import java.lang.annotation.retentionpolicy;
import java.lang.annotation.target;
 
/**
 * @auther: 楊紅星
 * @date: 2018/11/28 09:38
 * @description:
 */
@retention(retentionpolicy.runtime)
@target({elementtype.field})
public @interface updatetime {
 string value() default "";
}

2. 寫一個mybatis插件

使用@intercepts標注這是個mybatis插件,@signature標注要攔截的操作

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.zb.iscrm.mybatisinterceptor;
 
import com.zb.iscrm.annotation.updatetime;
import com.zb.iscrm.utils.dateutils;
import lombok.extern.slf4j.slf4j;
import org.apache.ibatis.executor.executor;
import org.apache.ibatis.mapping.mappedstatement;
import org.apache.ibatis.mapping.sqlcommandtype;
import org.apache.ibatis.plugin.*;
 
import java.lang.reflect.field;
import java.util.properties;
 
/**
 * @auther: 楊紅星
 * @date: 2018/11/28 09:41
 * @description: mybatis插件 用于執行update時將當前時間加入
 */
@slf4j
@intercepts({ @signature(type = executor.class, method = "update", args = { mappedstatement.class, object.class }) })
public class updatetimeinterceptor implements interceptor {
 
 @override
 public object intercept(invocation invocation) throws throwable {
  mappedstatement mappedstatement = (mappedstatement) invocation.getargs()[0];
  // 獲取 sql 命令
  sqlcommandtype sqlcommandtype = mappedstatement.getsqlcommandtype();
  // 獲取參數
  object parameter = invocation.getargs()[1];
  if (parameter != null) {
   // 獲取成員變量
   field[] declaredfields = parameter.getclass().getdeclaredfields();
   for (field field : declaredfields) {
    if (field.getannotation(updatetime.class) != null) { // update 語句插入 updatetime
     if (sqlcommandtype.insert.equals(sqlcommandtype) || sqlcommandtype.update.equals(sqlcommandtype)) {
      field.setaccessible(true);
      if (field.get(parameter) == null) {
       field.set(parameter, dateutils.datetimenow(dateutils.yyyy_mm_dd_hh_mm_ss));
      }
     }
    }
   }
  }
  //同樣的方式也可以在這里添加create_time或者是id的生成等處理
  
  return invocation.proceed();
 }
 
 @override
 public object plugin(object target) {
  return plugin.wrap(target, this);
 }
 
 @override
 public void setproperties(properties properties) {
 }
}

最后在mybatis的配置文件中注冊插件,然后就大功告成

?
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<!doctype configuration
  public "-//mybatis.org//dtd config 3.0//en"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
 <!--插件注冊-->
 <plugins>
  <plugin interceptor="com.zb.iscrm.mybatisinterceptor.updatetimeinterceptor"/>
 </plugins>
</configuration>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://juejin.im/post/5c036bf4f265da61524d23a3

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 永久免费看黄网站 | 亚洲生活片 | 日韩午夜影院 | 国产午夜精品久久久久久久 | 成人免费在线 | 激情五月激情 | 国产精品久久久久久久美男 | 青青草在线视频免费观看 | 懂色一区二区三区av片 | 国产精品女同一区二区免费站 | jizzz日本 | 欧美日韩激情一区二区三区 | 亚洲精品视频在线观看免费视频 | 日韩视频一区 | 综合另类 | 欧美91看片特黄aaaa | 欧美男人天堂 | 免费看黄色电影 | 国产欧美精品区一区二区三区 | 伊人青青草 | 成人免费观看视频 | 国产成人高清 | 伊人精品视频 | 色在线电影 | 亚洲怡红院在线观看 | 色性视频 | 久久精品中文字幕 | 亚洲电影在线 | 亚洲 欧美 日韩在线 | 国产黄色片一级 | 亚洲一区二区在线视频 | 成人午夜网站 | 成人av网站免费观看 | 久久精品国产精品青草 | 亚洲欧美视频二区 | 亚洲黄色激情 | 欧美www | 在线播放91| 香蕉久久一区二区不卡无毒影院 | 九九精品在线 | 伊人欧美一区 |