做网站和推广的公司哪家好,二手房网站怎么做,网站开发团队人员,连接品硕网线做怎么弹网站typeHandler typeHandler有什么用#xff1f; 你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为#xff1a;实现 org.apache.ibatis.type.TypeHandler 接口#xff0c; 或继承一个很便利的类 org.apache.ibatis.type.BaseTypeHandle…typeHandler typeHandler有什么用 你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为实现 org.apache.ibatis.type.TypeHandler 接口 或继承一个很便利的类 org.apache.ibatis.type.BaseTypeHandler 然后可以选择性地将它映射到一个 JDBC 类型 用法 参考官网的示例 package com.xh.mybatisLearn.utils;import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** Created by root on 3/2/18.*/
MappedJdbcTypes(JdbcType.VARCHAR)
MappedTypes(String.class)
public class ExampleTypeHandler extends BaseTypeHandlerString {public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {preparedStatement.setString(i, in s);}public String getNullableResult(ResultSet resultSet, String s) throws SQLException {return resultSet.getString(s);}public String getNullableResult(ResultSet resultSet, int i) throws SQLException {return resultSet.getString(i);}public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {return callableStatement.getString(i);}
}注册TypeHandler typeHandlerstypeHandler handlercom.xh.mybatisLearn.utils.ExampleTypeHandler//typeHandlers 插入时指定TypeHandler insert idaddUser useGeneratedKeystruekeyPropertyidinsert into user_tb (username,age) VALUES (#{username,typeHandlercom.xh.mybatisLearn.utils.ExampleTypeHandler},#{age})/insert结果 getAllUser{id17, usernameinu1, age21} plugin plugin有什么用 MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下MyBatis 允许使用插件来拦截的方法调用包括Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler (prepare, parameterize, batch, update, query) 用法 通过 MyBatis 提供的强大机制使用插件是非常简单的只需实现 Interceptor 接口并指定了想要拦截的方法签名即可。 参考官网示例 package com.xh.mybatisLearn.utils;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;/*** Created by root on 3/2/18.*/
Intercepts({Signature(type Executor.class,method query,args {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})})
public class ExamplePlugin implements Interceptor {private final Logger logger LoggerFactory.getLogger(ExamplePlugin.class);public Object intercept(Invocation invocation) throws Throwable {MappedStatement ms (MappedStatement) invocation.getArgs()[0];BoundSql boundSql ms.getBoundSql(invocation.getArgs()[1]);logger.info( sql:{}, boundSql.getSql());return invocation.proceed();}public Object plugin(Object target) {return Plugin.wrap(target, this);}public void setProperties(Properties properties) {String some_string properties.getProperty(some_string);logger.info( some_string:{}, some_string);}
} 这个插件就是打印查询的sql 其中type对应Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler (prepare, parameterize, batch, update, query) method对应上面各项括号的方法 args对应method的参数 plugin注册 pluginsplugin interceptorcom.xh.mybatisLearn.utils.ExamplePluginproperty namesome_string valuesome_string_xxxxxx//plugin/plugins logger dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-simple/artifactIdversion1.7.21/version/dependency 输出 [main] INFO com.xh.mybatisLearn.utils.ExamplePlugin - some_string:some_string_xxxxxx
[main] INFO com.xh.mybatisLearn.utils.ExamplePlugin - sql:select * from user_tb where id?
getOneUser{id12, usernameu1, age21} 转载于:https://www.cnblogs.com/lanqie/p/8493704.html