欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:mybatis的攔截器

柚子快報邀請碼778899分享:mybatis的攔截器

http://yzkb.51969.com/

文章目錄

第三個是參數(shù)攔截器第四個是結果集攔截器mybatis攔截器-筆試題1.筆試題

JDBC的執(zhí)行流程3.執(zhí)行sql語句,返回執(zhí)行結果

mybatis的四種攔截器

第一個是執(zhí)行攔截器:

Executor(執(zhí)行器攔截器):

用途:攔截MyBatis執(zhí)行器方法的執(zhí)行。

第二個是語句攔截器

StatementHandler(語句攔截器):

– 用途:攔截SQL語句的執(zhí)行。

使用:可以在SQL語句執(zhí)行之前修改或增強它們。例如,可以向WHERE子句添加額外的條件或記錄執(zhí)行的語句。分頁等

第三個是參數(shù)攔截器

ParameterHandler(參數(shù)攔截器):

用途:攔截SQL語句的參數(shù)設置。 使用:允許在將參數(shù)設置到SQL語句之前修改或驗證它們。例如,可以對作為參數(shù)傳遞的敏感信息進行加密或解密。

可以進行數(shù)據(jù)庫某個字段的監(jiān)控,可以進行mybatis攔截器的使用,進行數(shù)據(jù)庫的字段追蹤

第四個是結果集攔截器

用途:攔截從SQL語句返回的結果集的處理。 使用:可以在將結果集返回給應用程序之前修改或分析它們。例如,可以對結果集數(shù)據(jù)進行轉換或執(zhí)行額外的計算。

mybatis攔截器-筆試題

1.筆試題

實現(xiàn) 進入解析器

只要有人更改,那么要告訴

可以指定表中的字段進行監(jiān)控

有price或者敏感字段,那么就要對字段進行 有人修改的時候,那么就要發(fā)郵件或者報警,讓人知道這件事情

這個需求

JDBC的執(zhí)行流程

1.注冊驅動

首先使用反射

注冊驅動 jar包里面有什么就加載什么

獲取連接對象

jdbc底層使用socket進行連接數(shù)據(jù)庫的 ,打開connection

3.執(zhí)行sql語句,返回執(zhí)行結果

通過執(zhí)行startement實例執(zhí)行sql語句

處理執(zhí)行結果

resultSet

使用stament攔截器

實現(xiàn)思路

首先 實現(xiàn)mybatis的 Interceptor 接口

然后實現(xiàn)里面的方法

然后

ParameterHandler parameterHandler = (ParameterHandler) invocation.getTarget();

Object parameterObject = parameterHandler.getParameterObject();

package com.beiyou.mybatis;

import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReflectUtil; import com.beiyou.entity.BaseEntity; import org.apache.ibatis.executor.parameter.ParameterHandler; import org.apache.ibatis.executor.statement.StatementHandler; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Intercepts; import org.apache.ibatis.plugin.Invocation; import org.apache.ibatis.plugin.Signature; import org.springframework.stereotype.Component;

import java.beans.Statement; import java.lang.reflect.Field; import java.lang.reflect.Parameter; import java.sql.PreparedStatement;

/**

@author healer @Description MyParameterHandler @data 2024-07-11 14:50 */ @Component @Intercepts({@Signature(type = ParameterHandler.class, method = “setParameters”, args = {PreparedStatement.class})}) public class MyParameterHandler implements Interceptor { @Override public Object intercept(Invocation invocation) throws Throwable { ParameterHandler parameterHandler = (ParameterHandler) invocation.getTarget(); Object parameterObject = parameterHandler.getParameterObject(); ThreadLocal threadLocal = new ThreadLocal();

threadLocal.set("測試");

Object localUser = threadLocal.get();

//threadLocal.get() // Field lastUpdateBy = ReflectUtil.getField(parameterObject.getClass(), “l(fā)astUpdateBy”); // // if (lastUpdateBy != null) { // ReflectUtil.setFieldValue(parameterObject, lastUpdateBy, threadLocal.get()); // } // if (parameterObject instanceof BaseEntity && localUser != null) { BaseEntity entity = (BaseEntity) parameterObject; entity.setLastUpdateBy(localUser.toString()); } return invocation.proceed(); } }

實現(xiàn)的是參數(shù)的攔截器去實現(xiàn)思路

柚子快報邀請碼778899分享:mybatis的攔截器

http://yzkb.51969.com/

參考閱讀

評論可見,查看隱藏內容

本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19230093.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄