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

做网站如何分工学习网站建设论文

做网站如何分工,学习网站建设论文,怎样查询网站备案号,wordpress版权怎新建mybatis的statementHander拦截器拦截器 类 面试题&#xff1a; 2.实现 解析Sql时引入JSqlParser JSqlParser 是一个 SQL 语句解析器。 它将 SQL转换为可遍历的 Java 类层次结构。 <dependency><groupId>com.github.jsqlparser</groupId><artifac…

新建mybatis的statementHander拦截器拦截器 类

面试题:

2.实现

解析Sql时引入JSqlParser

JSqlParser 是一个 SQL 语句解析器。 它将 SQL转换为可遍历的 Java 类层次结构。 

<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.6</version></dependency>

 添加拦截器代码:

package com.yy.config;import cn.hutool.core.collection.CollUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.smart.model.LocalUser;
import cn.smart.util.ThreadlocalUtil;
import com.yy.entity.BaseEntity;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.insert.Insert;
import net.sf.jsqlparser.statement.update.Update;
import net.sf.jsqlparser.statement.update.UpdateSet;
import org.apache.ibatis.executor.parameter.ParameterHandler;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.mapping.BoundSql;
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.sql.PreparedStatement;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@Component
@Intercepts({// 指定要拦截的方法签名,这里是拦截Executor的update方法@Signature(type = StatementHandler.class, method = "update", args = {Statement.class}),// 可以添加更多要拦截的方法签名...
})
public class StatementHanderInterceptor implements Interceptor {private static List<String> tables = CollUtil.newArrayList("product","category");private static Map<String,List<String>> tableColumns = new HashMap<>();static {tableColumns.put("product",CollUtil.newArrayList("name","price"));}@Overridepublic Object intercept(Invocation invocation) throws Throwable {StatementHandler statementHandler =(StatementHandler)invocation.getTarget();//要想监控表,首先要从拦截器中拿到sql语句,看sql语句干了什么,对那些表和那些字段做了什么BoundSql boundSql = statementHandler.getBoundSql();String sql = boundSql.getSql();
//        使用JSqlParser解析器解析sql语句net.sf.jsqlparser.statement.Statement statement = CCJSqlParserUtil.parse(sql);if(statement instanceof Update){Update update = (Update)statement;String name = update.getTable().getName();if(tables.contains(name)){List<String> updataSets = tableColumns.get(name);ArrayList<UpdateSet> updateSets = update.getUpdateSets();for (UpdateSet updateSet : updateSets) {String columnName = updateSet.getColumns().get(0).getColumnName();if(updataSets.contains(columnName)){sendMessage(   "修改了字段"+updateSet,name);}}}}else if(statement instanceof Insert){Table table = ((Insert) statement).getTable();String name = table.getName();if(tables.contains(name)){sendMessage("添加了数据",name);}}return invocation.proceed();}private void sendMessage(String option,String tableName){String url= "https://oapi.dingtalk.com/robot/send?access_token=1cfb9a7b20e849a26b572a8ff98f62ee2a220028cd1452901a486e131435621f";JSONArray array = new JSONArray();array.add("18236435312");JSONObject msg = new JSONObject();msg.set("msgtype","text");msg.set("text",new JSONObject().set("content","警告:"+ThreadlocalUtil.get().getNickName()+"-> "+option+" ,表名是:"+tableName));msg.set("at",new JSONObject().set("atMobiles",array));String json = JSONUtil.toJsonStr(msg);String body = HttpRequest.post(url).body(json).execute().body();}}

遇到的问题:

因为这个pagehelper是从stater中继承过来的,可以在stater中也加一个4.6版本的jsqlparser依赖

 

http://www.yayakq.cn/news/902638/

相关文章:

  • 山西商城网站建设网站建设怎么建设
  • 宝塔网站建设做的网站为什么图片看不了
  • php网站游客试用怎么做淘宝运营一般要学多久
  • 天津做网站的企业上海外包seo
  • 如何找到网站是谁做的2016最新wordpress模板下载
  • 书店网站建设定位及目标电子网站建设策划模板
  • 地产网站建设公司网站建设排名北京
  • 做论坛网站数据库需多大嘉祥网站建设多少钱
  • 南阳网站建站培训北京软件开发外包
  • 海外网络加速器免费宁波怎样优化关键词
  • 百度服务中心投诉北京网站优化方案
  • 高校网站如何建设论文网站素材
  • 学校网站维护怎么做WordPress自动发英文文章
  • 百度收录公司网站深圳注册公司地址有什么要求
  • 台州商务网站大连金州新区规划建设局网站
  • 付公司网站建设费用会计分录建设银行为啥重置不了密码
  • 中文域名有哪些网站天水网站制作公司
  • 企业网站备案号密码忘记嘉兴网站开发学校
  • 国外网站网站app做淘宝客怎么建网站
  • 成都大型商城网站建设网站续费收多少合适
  • 怎么做网站弄网盟php网站开发要学什么软件
  • 闲置物品交易网站怎么做的公司网站如何被百度收录
  • 深圳人社局官网泰州seo网络推广
  • 网站常用字号牡丹江商城网站开发设计
  • 太原哪里做网站门户网站建设工作室
  • 做网站head.htmwordpress链接形式
  • 网站开发是在电脑上打出来的资料么网站开发文献资料
  • 浙江省建设工程质量安全管理协会网站wordpress 页面栏目
  • wordpress中调用文章内容百度seo优化排名如何
  • 公司专业设计网站平顶山市网站建设公司