java的executor包有什么功能
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容主要讲解"java的executor包有什么功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java的executor包有什么功能"吧!sql语
千家信息网最后更新 2025年11月13日java的executor包有什么功能
本篇内容主要讲解"java的executor包有什么功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java的executor包有什么功能"吧!
sql语句中的参数赋值是有由executor包中的parameter子包完成的。
parameter子包其实只有一个parameterHandler接口,它定义了2个方法:
public interface ParameterHandler { Object getParameterObject(); void setParameters(PreparedStatement ps) throws SQLException;}ParameterHandler接口有一个默认的实现类DefaultParameterHandler,它在scripting包的子包中。
mybatis中支持进行参数设置的语句类型是PreparedStatement接口及其子接口CallableStatement, 所以setParameters的输入参数是PreparedStatement类型。
setParameters方法的实现逻辑就是依次取出每个参数的值,然后根据参数类型调用PreparedStatement中的赋值方法进行赋值。
public class DefaultParameterHandler implements ParameterHandler { // 类型处理器注册表 private final TypeHandlerRegistry typeHandlerRegistry; // MappedStatement对象(包含完整的增删改查节点信息) private final MappedStatement mappedStatement; // 参数对象 private final Object parameterObject; // BoundSql对象(包含SQL语句、参数、实参信息) private final BoundSql boundSql; // 配置信息 private final Configuration configuration; public DefaultParameterHandler(MappedStatement mappedStatement, Object parameterObject, BoundSql boundSql) { this.mappedStatement = mappedStatement; this.configuration = mappedStatement.getConfiguration(); this.typeHandlerRegistry = mappedStatement.getConfiguration().getTypeHandlerRegistry(); this.parameterObject = parameterObject; this.boundSql = boundSql; } @Override public Object getParameterObject() { return parameterObject; } /** * 为语句设置参数 * @param ps 语句 */ @Override public void setParameters(PreparedStatement ps) { ErrorContext.instance().activity("setting parameters").object(mappedStatement.getParameterMap().getId()); // 取出参数列表 List parameterMappings = boundSql.getParameterMappings(); if (parameterMappings != null) { for (int i = 0; i < parameterMappings.size(); i++) { ParameterMapping parameterMapping = parameterMappings.get(i); // ParameterMode.OUT是CallableStatement的输出参数,已经单独注册。故忽略 if (parameterMapping.getMode() != ParameterMode.OUT) { Object value; // 取出属性名称 String propertyName = parameterMapping.getProperty(); if (boundSql.hasAdditionalParameter(propertyName)) { // 从附加参数中读取属性值 value = boundSql.getAdditionalParameter(propertyName); } else if (parameterObject == null) { value = null; } else if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) { // 参数对象是基本类型,则参数对象即为参数值 value = parameterObject; } else { // 参数对象是复杂类型,取出参数对象的该属性值 MetaObject metaObject = configuration.newMetaObject(parameterObject); value = metaObject.getValue(propertyName); } // 确定该参数的处理器 TypeHandler typeHandler = parameterMapping.getTypeHandler(); JdbcType jdbcType = parameterMapping.getJdbcType(); if (value == null && jdbcType == null) { jdbcType = configuration.getJdbcTypeForNull(); } try { // 此方法最终根据参数类型,调用java.sql.PreparedStatement类中的参数赋值方法,对SQL语句中的参数赋值 typeHandler.setParameter(ps, i + 1, value, jdbcType); } catch (TypeException | SQLException e) { throw new TypeException("Could not set parameters for mapping: " + parameterMapping + ". Cause: " + e, e); } } } } }} 到此,相信大家对"java的executor包有什么功能"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
参数
对象
类型
语句
方法
接口
功能
信息
属性
内容
处理器
处理
学习
复杂
实用
更深
兴趣
只有
名称
实用性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北航网络安全学院杭州
矿井4G网络技术要求
iso9001软件开发
java数据库url地址
企业管理软件开发工具
开访客网络安全吗
表格的是否相同的数据库
中专有学网络安全的学校吗
中国进出口企业数据库
深圳市盛烽网络技术
芜湖软件开发app公司
数据库有哪几种关联
数据库中syjg是什么意思
矫捷山东网络技术有限公司
曙光服务器1620-G10配置
鹰眼神探护卫网络安全
社旗手机app软件开发公司
杭州中国移动网络安全宣传片
中奇联合互联网科技有限公司电话
广东特色软件开发平均价格
广东汇丰软件开发待遇
静安区软件开发规划
物理云服务器
盐城大数据服务器直销
中经网统计统计数据库
网络安全验收自检自查报告
网络安全相关的英文词语
威海软件开发推荐
自动立库服务器要求
设置网络安全分级