深圳安嘉建设有限公司网站网站域名是什

news/2025/9/23 0:20:27/文章来源:
深圳安嘉建设有限公司网站,网站域名是什,合肥建设学校网站,小众设计公司logo** 1.实现了Interceptor接口#xff0c;并实现了两个拦截方法#xff1a;update和query。当Mybatis执行update或query语句时#xff0c;会自动调用intercept法。intercept方法首先获取当前执行的SQL语句#xff0c;并计算执行该SQL语句所需的时间。然后#xff0c;它将执行…** 1.实现了Interceptor接口并实现了两个拦截方法update和query。当Mybatis执行update或query语句时会自动调用intercept法。intercept方法首先获取当前执行的SQL语句并计算执行该SQL语句所需的时间。然后它将执行的结果返回给Mybatis。此外此插件还会将执行时间大于1000毫秒、5000毫秒和10000毫秒的SQL语句记录到日志文件中。** package com.wyh.subject.infra.config;import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.plugin.*; import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.util.Properties;Intercepts({Signature(type Executor.class, method update, args {MappedStatement.class,Object.class}),Signature(type Executor.class, method query, args {MappedStatement.class,Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class})}) public class SqlStatementInterceptor implements Interceptor {public static final Logger log LoggerFactory.getLogger(sys-sql); //定义一个log的静态变量来记录日志Overridepublic Object intercept(Invocation invocation) throws Throwable {long startTime System.currentTimeMillis();try {return invocation.proceed();} finally {long timeConsuming System.currentTimeMillis() - startTime;log.info(执行SQL:{}ms, timeConsuming);if (timeConsuming 999 timeConsuming 5000) {log.info(执行SQL大于1s:{}ms, timeConsuming);} else if (timeConsuming 5000 timeConsuming 10000) {log.info(执行SQL大于5s:{}ms, timeConsuming);} else if (timeConsuming 10000) {log.info(执行SQL大于10s:{}ms, timeConsuming);}}}Overridepublic Object plugin(Object target) {return Plugin.wrap(target, this);}Overridepublic void setProperties(Properties properties) {} }2.打印sql日志将数据填入sql中的 package com.wyh.subject.infra.config;import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.ParameterMapping; import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; import org.apache.ibatis.type.TypeHandlerRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.CollectionUtils;import java.sql.SQLException; import java.text.DateFormat; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.regex.Matcher;/*** 打印sql日志将数据填入sql中的*/ public class MybatisPlusAllSqlLog implements InnerInterceptor {public static final Logger log LoggerFactory.getLogger(sys-sql);Overridepublic void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {logInfo(boundSql, ms, parameter);}Overridepublic void beforeUpdate(Executor executor, MappedStatement ms, Object parameter) throws SQLException {BoundSql boundSql ms.getBoundSql(parameter);logInfo(boundSql, ms, parameter);}private static void logInfo(BoundSql boundSql, MappedStatement ms, Object parameter) {try {log.info(parameter parameter);// 获取到节点的id,即sql语句的idString sqlId ms.getId();log.info(sqlId sqlId);// 获取节点的配置Configuration configuration ms.getConfiguration();// 获取到最终的sql语句String sql getSql(configuration, boundSql, sqlId);log.info(完整的sql:{}, sql);} catch (Exception e) {log.error(异常:{}, e.getLocalizedMessage(), e);}}// 封装了一下sql语句使得结果返回完整xml路径下的sql语句节点id sql语句public static String getSql(Configuration configuration, BoundSql boundSql, String sqlId) {return sqlId : showSql(configuration, boundSql);}// 进行的替换public static String showSql(Configuration configuration, BoundSql boundSql) {// 获取参数Object parameterObject boundSql.getParameterObject();ListParameterMapping parameterMappings boundSql.getParameterMappings();// sql语句中多个空格都用一个空格代替String sql boundSql.getSql().replaceAll([\\s], );if (!CollectionUtils.isEmpty(parameterMappings) parameterObject ! null) {// 获取类型处理器注册器类型处理器的功能是进行java类型和数据库类型的转换TypeHandlerRegistry typeHandlerRegistry configuration.getTypeHandlerRegistry();// 如果根据parameterObject.getClass(可以找到对应的类型则替换if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) {sql sql.replaceFirst(\\?,Matcher.quoteReplacement(getParameterValue(parameterObject)));} else {// MetaObject主要是封装了originalObject对象提供了get和set的方法用于获取和设置originalObject的属性值,主要支持对JavaBean、Collection、Map三种类型对象的操作MetaObject metaObject configuration.newMetaObject(parameterObject);for (ParameterMapping parameterMapping : parameterMappings) {String propertyName parameterMapping.getProperty();if (metaObject.hasGetter(propertyName)) {Object obj metaObject.getValue(propertyName);sql sql.replaceFirst(\\?,Matcher.quoteReplacement(getParameterValue(obj)));} else if (boundSql.hasAdditionalParameter(propertyName)) {// 该分支是动态sqlObject obj boundSql.getAdditionalParameter(propertyName);sql sql.replaceFirst(\\?,Matcher.quoteReplacement(getParameterValue(obj)));} else {// 打印出缺失提醒该参数缺失并防止错位sql sql.replaceFirst(\\?, 缺失);}}}}return sql;}// 如果参数是String则添加单引号 如果是日期则转换为时间格式器并加单引号 对参数是null和不是null的情况作了处理private static String getParameterValue(Object obj) {String value;if (obj instanceof String) {value obj.toString() ;} else if (obj instanceof Date) {DateFormat formatter DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT, Locale.CHINA);value formatter.format(new Date()) ;} else {if (obj ! null) {value obj.toString();} else {value ;}}return value;}}package com.wyh.subject.infra.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class MybatisConfiguration {/*** 配置MybatisPlus的sql日志配置将替换* return*/Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor mybatisPlusInterceptor new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new MybatisPlusAllSqlLog());return mybatisPlusInterceptor;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建数据库的网站多少钱id中怎么链接wordpress

Pytorch入门 简单容易上手,感觉比keras好理解多了,和mxnet很像(似乎mxnet有点借鉴pytorch),记一记。 直接从例子开始学,基础知识咱已经看了很多论文了。。。 import torch import torch.nn as nn import to…

做网站找那家公司好数字媒体应用 网站开发

正题 P2599 题目大意 给n堆石子,第 i 堆有 aia_iai​ 个石子,每次可以从最左边或者最右边的一堆里面取若干个,两个人轮流取,问先手是否存在必胜策略 解题思路 设 li,jl_{i,j}li,j​ 为在 [i,j][i,j][i,j] 右边添加一堆大小 li,…

创意设计公司网站网站静态页面模板

为什么80%的码农都做不了架构师?>>> 安装Apk过程中,出现如下错误: Failed to install on device ‘XXX′: timeout 原因时设备速度太卡,导致启动超时,解决办法:延长超时时间。 方法&#xff…

南通专业网站设计制作杭州建设网站公司网站

声明:原创文章,禁止转载! Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案 分析Android11 系统对于EMMC/UFS作为内部存储、SD卡被格式化为内部存储、SD卡/U盘被格式化为便携式存储的不同处理 一.现象描述 实测Android9 Android10 A…

东莞营销网站建设收费标准崇信县门户网

题目很简单&#xff0c;就是我们在写二分的时候&#xff0c;会遇到这样的情况&#xff1a; mid left (right-left)/2; if (nums k)return mid;if (nums>k)left mid;if (nums<k)right mid-1; 若我们debug会发现其可能会一致卡在left mid&#xff0c;例如&#xff08…

北京做网站开发公司电话网站设计与开发网站策划

作者 | 码哥 来源 | 码哥字节❝这可能是最中肯的 Redis 使用规范了一网友昨天和我说&#xff0c;公司凌晨 12 点之后&#xff0c;网站用户量暴增&#xff0c;出现了一个技术故障&#xff0c;用户无法下单&#xff0c;当时老大火冒三丈&#xff01;经过查找发现 Redis 报 C…

刷手机网站关键词wordpress事例

前面的章节中&#xff0c;我们从纯理论的角度对依赖注入进行了深入论述&#xff0c;我们接下来会对.NET Core依赖注入框架进行单独介绍。为了让读者朋友能够更好地理解.NET Core依赖注入框架的设计与实现&#xff0c;我们按照类似的原理创建了一个简易版本的依赖注入框架&#…

网站上的图片带店面是怎么做的谷歌手机版下载安装

1什么是json JSON(JavaScript Object Notation&#xff0c;JS对象简谱&#xff09;是一种轻量级的数据交换格式。它是基于ECMAScript&#xff08;欧洲计算机协会制定的js规范&#xff09;的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰…

做电商有那个网站遵义企业网站建设

认识视图 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实表一样&#xff0c;视图包含一系列带有名称的列和行数据&#xff0c;但视图并不是数据库真实存储的数据表。 视图是从一个、多个表或者视图中导出的表&#xff0c;包含一系列带有名称的数据列和若干条数据行。…

做暧小视频免费视频在线观看网站公司网站做的好的

awk从放弃到入门&#xff08;11&#xff09;&#xff1a;拾遗之”三元运算”与”打印奇偶行” 三元运算打印奇偶行 本博文转载自 这篇文章中的知识点是建立在前文的基础上的&#xff0c;如果你还没有掌握前文中的知识&#xff0c;请先参考之前的文章。 这篇文章其实是对之前知…

河南郑州建网站公司建筑网站案例

MySQL-Front是一款实用的MYSQL数据库管理工具&#xff0c;软件自带了简体中文语言&#xff0c;与mysql数据库连接后就可以对其地蚝各类管理操作了&#xff0c;比如对域进行编辑、增加和删除&#xff0c;执行sql脚本或者导出数据库等操作&#xff0c;除此之外还可以将数据库保存…

可以自己设计一个公司的网站苏州电子商务网站建设

select ROUND(12.555, 2) --12.560 select cast(12.5550 as decimal(10,2)) --12.56 转载于:https://www.cnblogs.com/kedarui/p/3791337.html

带做网站上海房产交易网站

如果没有数据存在&#xff0c;如何将数组值设置为null&#xff1f;PHP数组设置空值以下是我的PHP阵列和我JSON编码 -{"title":"Impalz-Marketing","type":"Business Details","version":"1.0","login":…

网站建设班级通讯录如何做网页推广

一.数字孪生体技术概述 数字孪生体技术是跨层级&#xff0c;跨尺度的现实世界和虚拟世界的建立沟通的桥梁&#xff0c;是第四次工业革命的通用目的技术和核心技术体系之一&#xff0c;是支撑万物互联的综合技术系统&#xff0c;是数字经济发展的基础&#xff0c;是未来智能时代…

许昌住房和城乡建设部网站京津冀协同发展现状

有一天&#xff0c;您遇到一些代码&#xff0c;并认为这很漂亮&#xff0c;为什么我没有想到呢&#xff1f; 因此&#xff0c;我的长期同事Mark Warner在使用方法引用处理从String进行转换的标准名称/值存储模式方面有一个不错的选择。 int size store.getProperty("cac…

网站备案通管局门户网站是如何盈利的

应用场景&#xff1a; 电脑连接VPN之后&#xff0c;Java程序无法连接远程服务&#xff0c;比如第三方接口、远程数据库连接、远程微服务等。我个人遇到的情况有连接海康威视SDK&#xff0c;influxdb以及一些微服务。 解决办法&#xff1a; 启动Java时加入参数&#xff1a;-D…

为什么 TCP 是3次握手4次挥手?

为什么 TCP 是3次握手4次挥手?① 为什么是三次握手?(A: 客户端,B: 服务器) TCP连接是全双工的,意味着数据在两个方向上可以同时传输。因此,建立连接的关键是确保双方都具有发送和接收的能力,并且要同步双方的初…

烟台网站关键词推广深圳哪些建设公司招聘

像Eclipse这样的现代IDE提供了各种插件来简化Web开发。 但是&#xff0c;我相信将Tomcat作为“常规” Java应用程序启动仍然可以提供最佳的调试体验。 大多数情况下&#xff0c;这是因为这些工具将Tomcat或任何其他servlet容器作为外部进程启动&#xff0c;然后在其上附加一个远…

网站流量工具网站换了域名怎么查

LabVIEW绘制带有多个不同标尺的波形图 通过在同一波形图上使用多个轴&#xff0c;可以使用不同的标尺绘制数据。请按照以下步骤操作。 将波形图或图表控件放在前面板上。 1. 右键点击您要创建多个标尺的轴&#xff0c;然后选择复制标尺。例如&#xff0c;如果要为一个…

如何建立网站后台云商网站建设

cocos2d-x自带了不少示例&#xff0c;以及几个比较简单的游戏&#xff0c;不过这些游戏都是用javascript binding(SpiderMonkey)做的&#xff0c;所以我猜测javascript binding可能是cocos2d-x开发游戏的主流模式&#xff0c;优点是&#xff1a; 游戏逻辑用javascript&#xff…