mybatis拦截器修改sql_javaweb拦截器是什么

mybatis拦截器修改sql_javaweb拦截器是什么/***Copyright2009-2016theoriginalauthororauthors.**LicensedundertheApacheLicense,Version2.0(the”License”);*youmaynotusethisfileexceptincompliancewiththeLicense.*…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

/*** Copyright 2009-2016 the original author or authors.

*

* Licensed under the Apache License, Version 2.0 (the “License”);

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

*http://www.apache.org/licenses/LICENSE-2.0*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an “AS IS” BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.*/

packageorg.apache.ibatis.executor.statement;importjava.sql.Connection;importjava.sql.SQLException;importjava.sql.Statement;importorg.apache.ibatis.executor.ErrorContext;importorg.apache.ibatis.executor.Executor;importorg.apache.ibatis.executor.ExecutorException;importorg.apache.ibatis.executor.keygen.KeyGenerator;importorg.apache.ibatis.executor.parameter.ParameterHandler;importorg.apache.ibatis.executor.resultset.ResultSetHandler;importorg.apache.ibatis.mapping.BoundSql;importorg.apache.ibatis.mapping.MappedStatement;importorg.apache.ibatis.reflection.factory.ObjectFactory;importorg.apache.ibatis.session.Configuration;importorg.apache.ibatis.session.ResultHandler;importorg.apache.ibatis.session.RowBounds;importorg.apache.ibatis.type.TypeHandlerRegistry;/***@authorClinton Begin*/

public abstract class BaseStatementHandler implementsStatementHandler {protected finalConfiguration configuration;protected finalObjectFactory objectFactory;protected finalTypeHandlerRegistry typeHandlerRegistry;protected finalResultSetHandler resultSetHandler;protected finalParameterHandler parameterHandler;protected finalExecutor executor;protected finalMappedStatement mappedStatement;protected finalRowBounds rowBounds;protectedBoundSql boundSql;protectedBaseStatementHandler(Executor executor, MappedStatement mappedStatement, Object parameterObject, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {this.configuration =mappedStatement.getConfiguration();this.executor =executor;this.mappedStatement =mappedStatement;this.rowBounds =rowBounds;this.typeHandlerRegistry =configuration.getTypeHandlerRegistry();this.objectFactory =configuration.getObjectFactory();if (boundSql == null) { //issue #435, get the key before calculating the statement

generateKeys(parameterObject);

boundSql=mappedStatement.getBoundSql(parameterObject);

}this.boundSql =boundSql;this.parameterHandler =configuration.newParameterHandler(mappedStatement, parameterObject, boundSql);this.resultSetHandler =configuration.newResultSetHandler(executor, mappedStatement, rowBounds, parameterHandler, resultHandler, boundSql);

}

@OverridepublicBoundSql getBoundSql() {returnboundSql;

}

@OverridepublicParameterHandler getParameterHandler() {returnparameterHandler;

}

@Overridepublic Statement prepare(Connection connection, Integer transactionTimeout) throwsSQLException {

ErrorContext.instance().sql(boundSql.getSql());

Statement statement= null;try{

statement=instantiateStatement(connection);

setStatementTimeout(statement, transactionTimeout);

setFetchSize(statement);returnstatement;

}catch(SQLException e) {

closeStatement(statement);throwe;

}catch(Exception e) {

closeStatement(statement);throw new ExecutorException(“Error preparing statement. Cause: ” +e, e);

}

}protected abstract Statement instantiateStatement(Connection connection) throwsSQLException;protected void setStatementTimeout(Statement stmt, Integer transactionTimeout) throwsSQLException {

Integer queryTimeout= null;if (mappedStatement.getTimeout() != null) {

queryTimeout=mappedStatement.getTimeout();

}else if (configuration.getDefaultStatementTimeout() != null) {

queryTimeout=configuration.getDefaultStatementTimeout();

}if (queryTimeout != null) {

stmt.setQueryTimeout(queryTimeout);

}

StatementUtil.applyTransactionTimeout(stmt, queryTimeout, transactionTimeout);

}protected void setFetchSize(Statement stmt) throwsSQLException {

Integer fetchSize=mappedStatement.getFetchSize();if (fetchSize != null) {

stmt.setFetchSize(fetchSize);return;

}

Integer defaultFetchSize=configuration.getDefaultFetchSize();if (defaultFetchSize != null) {

stmt.setFetchSize(defaultFetchSize);

}

}protected voidcloseStatement(Statement statement) {try{if (statement != null) {

statement.close();

}

}catch(SQLException e) {//ignore

}

}protected voidgenerateKeys(Object parameter) {

KeyGenerator keyGenerator=mappedStatement.getKeyGenerator();

ErrorContext.instance().store();

keyGenerator.processBefore(executor, mappedStatement,null, parameter);

ErrorContext.instance().recall();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195780.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2019-05-21 SpringBoot集成UReport2

    2019-05-21 SpringBoot集成UReport2

    2021年7月7日
    127
  • 如何零基础开始自学Python编程「建议收藏」

    如何零基础开始自学Python编程「建议收藏」转载——原作者:赛门喵链接:https://www.zhihu.com/question/29138020/answer/1411702420.明确目标我是真正零基础开始学Python的,从一

    2022年7月5日
    22
  • 解决 安装android-sdk时SDK Manager.exe 闪退的问题「建议收藏」

    解决 安装android-sdk时SDK Manager.exe 闪退的问题「建议收藏」好不容易从http://tools.android-studio.org/index.php/sdk 下载下来最新版本的sdk,解压后运行SDKManager.exe竟然闪退,管理员运行

    2022年7月3日
    22
  • 最小二乘法正规方程推导过程

    最小二乘法正规方程推导过程最小二乘法正规方程推导过程线性回归岭回归:添加L2L_2L2​正则项输入样本X∈Rm×n\textbf{X}\in\mathbb{R}^{m\timesn}X∈Rm×n,输出y∈Rm×1\textbf{y}\in\mathbb{R}^{m\times1}y∈Rm×1,需要学习的参数w∈Rn×1\textbf{w}\in\mathbb{R}^{n\times1}w∈Rn×1。其中,mmm为样本个数,nnn为单个样本维度。线性回归最小化目标函数J(w)=12∥y−Xw∥22J(\

    2022年5月16日
    44
  • Win10电脑计算机自己跑,Win10做了这9项优化 电脑运行急速提升「建议收藏」

    Win10电脑计算机自己跑,Win10做了这9项优化 电脑运行急速提升「建议收藏」想让系统更快些,就需要优化它。虽然和之前版本相比,Win10在底层性能上已经不错,但毕竟要照顾不同的使用人群,因此它的很多项目还是偏向于保守和大众化的。其实每个人使用Win10的目的都不同,有选择性地关闭一些服务,就可以让Win10跑得更快!装好Win10必做的优化1、替换自带WindowsDefender具体做法:安装第三方杀软,系统将自动关闭WindowsDefender;虽然微软一直在标榜自…

    2022年6月12日
    34
  • 【深入Java虚拟机】之四:类加载机制

    【深入Java虚拟机】之四:类加载机制类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行

    2022年5月24日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号