国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

mybatisPlus之自動(dòng)填充功能及防全表更新與刪除插件

這篇具有很好參考價(jià)值的文章主要介紹了mybatisPlus之自動(dòng)填充功能及防全表更新與刪除插件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

自動(dòng)填充功能

基本介紹?

Mybatis-plus自動(dòng)填充功能是指在數(shù)據(jù)庫(kù)表進(jìn)行增、刪、改、查操作時(shí),自動(dòng)將某些字段的值進(jìn)行填充。這些字段的值可以是當(dāng)前時(shí)間、登錄用戶ID等。

在項(xiàng)目中有一些屬性,如果我們不希望每次都填充的話,我們可以設(shè)置為自動(dòng)填充,比如常見(jiàn)的時(shí)間,創(chuàng)建時(shí)間和更新時(shí)間可以設(shè)置為自動(dòng)填充。

?具體使用

【1】在數(shù)據(jù)庫(kù)的表中添加兩個(gè)字段

mybatisPlus之自動(dòng)填充功能及防全表更新與刪除插件,mybatisPlus,數(shù)據(jù)庫(kù),mybatis,java,spring,springboot,JVM

【2】在實(shí)體類(lèi)中,添加對(duì)應(yīng)字段,并為需要自動(dòng)填充的屬性指定填充時(shí)機(jī)

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(autoResultMap = true)
public class User extends Model<User> {
    @TableId
    private Long id;
    private String name;
    private Integer age;
    private String email;
    private Integer status;
    private GenderEnum gender;
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private Map<String,String> contact;
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

? ? @TableField(fill = FieldFill.INSERT)
? ? private Date createTime;
? ? @TableField(fill = FieldFill.INSERT_UPDATE)
? ? private Date updateTime;?

【3】注意只有設(shè)置了下劃線和小駝峰映射,這種mysql的寫(xiě)法才能和實(shí)體類(lèi)完成映射?

mybatis-plus:
  global-config:
    db-config:
      logic-not-delete-value: 0
      logic-delete-value: 5
      logic-delete-field: status
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true

mybatisPlus之自動(dòng)填充功能及防全表更新與刪除插件,mybatisPlus,數(shù)據(jù)庫(kù),mybatis,java,spring,springboot,JVM

?【3】編寫(xiě)自動(dòng)填充處理器,指定填充策略

@Component
public class MyMetaHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        setFieldValByName("createTime",new Date(),metaObject);
        setFieldValByName("updateTime",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        setFieldValByName("updateTime",new Date(),metaObject);
    }
}

?【4】測(cè)試插入操作

@Test
void testFill(){
    User user = new User();
    user.setName("wang");
    user.setAge(35);
    user.setEmail("wang@powernode.com");
    user.setGender(GenderEnum.MAN);
    user.setStatus(1);
    HashMap<String, String> contact = new HashMap<>();
    contact.put("phone","010-1234567");
    contact.put("tel","13388889999");
    userMapper.insert(user);
}

【5】測(cè)試更新操作?

@Test
void testFill2(){
    User user = new User();
    user.setId(6L);
    user.setName("wang");
    user.setAge(35);
    user.setEmail("wang@powernode.com");
    user.setGender(GenderEnum.MAN);
    user.setStatus(1);
    HashMap<String, String> contact = new HashMap<>();
    contact.put("phone","010-1234567");
    contact.put("tel","13388889999");

    userMapper.updateById(user);
}

?防全表更新與刪除插件

?基本介紹

在實(shí)際開(kāi)發(fā)中,全表更新和刪除是非常危險(xiǎn)的操作,在MybatisPlus中,提供了插件和防止這種危險(xiǎn)操作的發(fā)生。MybatisPlus提供了一個(gè)叫做"SqlExplainInterceptor"的攔截器,可以用于防止全表更新和刪除操作。

開(kāi)啟后,當(dāng)數(shù)據(jù)庫(kù)操作SQL中出現(xiàn)“UPDATE”或者“DELETE”的時(shí)候,攔截器會(huì)對(duì)SQL進(jìn)行解析,如果存在沒(méi)有帶條件的“UPDATE”或者“DELETE”語(yǔ)句,攔截器會(huì)拋出異常,從而防止全表更新和刪除操作。

需要注意的是,此攔截器只能攔截MybatisPlus自動(dòng)生成的SQL語(yǔ)句,無(wú)法攔截手寫(xiě)的SQL語(yǔ)句,因此在編寫(xiě)手寫(xiě)SQL時(shí)仍需要注意防止全表更新和刪除操作。

具體使用

【1】注入MybatisPlusInterceptor類(lèi),并配置BlockAttackInnerInterceptor攔截器

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //分頁(yè)插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //防全表更新與刪除插件
        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
        return interceptor;
    }
}

【2】測(cè)試全表更新,會(huì)出現(xiàn)拋出異常,防止了全表更新

@SpringBootTest
public class QueryTest {

    @Autowired
    private UserService userService;

@Test
void allUpdate(){
    User user = new User();
    user.setId(999L);
    user.setName("wang");
    user.setEmail("wang@powernode.com");
    userService.saveOrUpdate(user,null);
}
}

mybatisPlus之自動(dòng)填充功能及防全表更新與刪除插件,mybatisPlus,數(shù)據(jù)庫(kù),mybatis,java,spring,springboot,JVM文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-606173.html

到了這里,關(guān)于mybatisPlus之自動(dòng)填充功能及防全表更新與刪除插件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 禁止瀏覽器自動(dòng)填充密碼功能,設(shè)置自動(dòng)填充背景色。

    禁止瀏覽器自動(dòng)填充密碼功能,設(shè)置自動(dòng)填充背景色。

    text設(shè)置autocomplete=“off” password設(shè)置 autocomplete=“new-password” 兩個(gè)一起設(shè)置,就不會(huì)自動(dòng)填充了。 自動(dòng)填充后,陰影顏色變?yōu)楹谏?需要設(shè)置為0,不顯示陰影。 設(shè)置完后,自動(dòng)填充沒(méi)有陰影了。

    2024年02月16日
    瀏覽(28)
  • mybatis-plus 自動(dòng)填充創(chuàng)建時(shí)間/更新時(shí)間

    mybatis-plus 自動(dòng)填充創(chuàng)建時(shí)間/更新時(shí)間

    方式一:數(shù)據(jù)庫(kù)級(jí)別 創(chuàng)建時(shí)間create_time字段設(shè)置類(lèi)型為timestamp,默認(rèn)值為CURRENT_TIMESTAMP; 更新時(shí)間update_time字段設(shè)置類(lèi)型為timestamp,默認(rèn)值為CURRENT_TIMESTAMP,勾選 根據(jù)當(dāng)前時(shí)間戳更新 。 實(shí)體類(lèi)createTime字段設(shè)置數(shù)據(jù)類(lèi)型為Date; 實(shí)體類(lèi)updateTime字段設(shè)置數(shù)據(jù)類(lèi)型為Date。 注意:

    2024年02月14日
    瀏覽(33)
  • Mybatis Plus 公共字段自動(dòng)填充功能

    Mybatis Plus 公共字段自動(dòng)填充功能

    目錄 ? 1、問(wèn)題引入 2、 基本功能實(shí)現(xiàn) 3、功能完善 3.1 ThreadLocal 3.1.1 介紹 3.1.2 常用方法 3.2 思路分析 3.3 代碼實(shí)現(xiàn) 在我們的項(xiàng)目開(kāi)發(fā)中,我們會(huì)發(fā)現(xiàn)有一些數(shù)據(jù)庫(kù)表字段是每個(gè)表都有的,例如 : 創(chuàng)建時(shí)間,創(chuàng)建人 ,更新時(shí)間,更新人。 而我們目前的針對(duì)這些字段我們的目前

    2024年02月05日
    瀏覽(110)
  • mybatis-plus填充功能,自動(dòng)設(shè)置值

    1、引入依賴 2、編寫(xiě)entity 3、編寫(xiě)處理器 4、測(cè)試 官網(wǎng):自動(dòng)填充功能 | MyBatis-Plus (baomidou.com)

    2024年02月09日
    瀏覽(24)
  • MybatisPlus插件功能詳細(xì)介紹 自動(dòng)分頁(yè) 通用分頁(yè)實(shí)體

    MybatisPlus插件功能詳細(xì)介紹 自動(dòng)分頁(yè) 通用分頁(yè)實(shí)體

    本課程全面講解了Mybatis框架的使用,從快速入門(mén)到原理分析再到實(shí)戰(zhàn)應(yīng)用。每一個(gè)知識(shí)點(diǎn)都有案例進(jìn)行演示學(xué)習(xí),最終通過(guò)學(xué)習(xí)你將全面掌握,從而使Mybatis的開(kāi)發(fā)更加的高效,系統(tǒng)學(xué)習(xí) 通過(guò)項(xiàng)目的開(kāi)發(fā)大家應(yīng)該能發(fā)現(xiàn),單表的CRUD功能代碼重復(fù)度很高,也沒(méi)有什么難度。而這

    2024年02月09日
    瀏覽(22)
  • 小程序自動(dòng)更新功能

    小程序自動(dòng)更新功能 在 .vue 頁(yè)面的 script 中添加生命周期,在生命周期內(nèi)監(jiān)聽(tīng)頁(yè)面信息 onLoad onUnload

    2024年02月03日
    瀏覽(14)
  • git自動(dòng)更新功能

    git自動(dòng)更新功能

    因?yàn)橐话鉒inux系統(tǒng)網(wǎng)頁(yè)用的 www 或 www-data 用戶和用戶組,所以要實(shí)現(xiàn)自動(dòng)來(lái)去,首先要在www用戶權(quán)限下生成 ssh密鑰 ,不然沒(méi)有權(quán)限,其次就是,要把用root用戶拉去的代碼,批量改成 www 用戶 一切操作在www用戶下完成 如果remote- roigin 遠(yuǎn)程地址是http的,改成ssh的,可以使用ss

    2024年02月04日
    瀏覽(17)
  • 小程序彈幕自動(dòng)滾動(dòng)實(shí)時(shí)更新數(shù)據(jù)功能

    小程序彈幕自動(dòng)滾動(dòng)實(shí)時(shí)更新數(shù)據(jù)功能

    需求 最近遇到的需求,寫(xiě)一個(gè)彈幕功能 大致就是實(shí)現(xiàn)這樣的效果 彈幕輪播,上下兩排,一共30個(gè)彈幕,30個(gè)輪播完畢之后獲取新的彈幕數(shù)據(jù) 實(shí)現(xiàn)方法 ?目前我想到的實(shí)現(xiàn)方法是用css的動(dòng)畫(huà)來(lái)實(shí)現(xiàn)這個(gè)功能 布局層級(jí) 給barrageBox盒子一個(gè)相對(duì)定位 給barrageList絕對(duì)定位 先將list盒子

    2024年01月20日
    瀏覽(24)
  • 徹底禁用win10自動(dòng)更新功能及其powershell代碼

    徹底禁用win10自動(dòng)更新功能及其powershell代碼

    以下禁用步驟實(shí)際上是找微軟提供的方法, 可以禁用也可以恢復(fù)啟用 ,健康無(wú)危害。 目前網(wǎng)絡(luò)上常見(jiàn)的禁止更新方法有兩種, 1、禁用Windows Update相關(guān)服務(wù); 2、通過(guò)組策略禁止Windows Update更新。 事實(shí)證明這兩種方法已經(jīng)擺脫不了win10自動(dòng)更新的魔爪,而且操作比較復(fù)雜對(duì)于

    2024年02月04日
    瀏覽(19)
  • QT 簡(jiǎn)單實(shí)現(xiàn)自動(dòng)更新程序(一) 效果展示 功能描述 ftp模式 http模式 配置文件更新 安裝包更新

    QT 簡(jiǎn)單實(shí)現(xiàn)自動(dòng)更新程序(一) 效果展示 功能描述 ftp模式 http模式 配置文件更新 安裝包更新

    ??該系列文章主要講解自動(dòng)更新程序相關(guān),會(huì)從自動(dòng)更新原理開(kāi)始,到ftp與http不同下載方式,再到到如何實(shí)現(xiàn)配置文件更新與安裝包更新,最后做成一個(gè)完整的軟件。只是經(jīng)驗(yàn)分享,描述內(nèi)容并不絕對(duì),如有誤差歡迎指正。以ftp下載,配置文件更新模式為例,實(shí)現(xiàn)效果如下

    2024年02月10日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包