Mybatis中ParameterHandler的作用是什么
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,Mybatis中ParameterHandler的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。List-1public
千家信息网最后更新 2025年02月02日Mybatis中ParameterHandler的作用是什么
Mybatis中ParameterHandler的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
List-1
public interface ParameterHandler { Object getParameterObject(); void setParameters(PreparedStatement ps) throws SQLException;}
它的默认实现只有一个DefaultParameterHandler,
List-2
@Override public void setParameters(PreparedStatement ps) { ErrorContext.instance().activity("setting parameters").object(mappedStatement.getParameterMap().getId()); //获取Sql语句的参数列表 ListparameterMappings = boundSql.getParameterMappings(); if (parameterMappings != null) { //遍历参数 for (int i = 0; i < parameterMappings.size(); i++) { ParameterMapping parameterMapping = parameterMappings.get(i); //只处理输入参数 if (parameterMapping.getMode() != ParameterMode.OUT) { Object value; String propertyName = parameterMapping.getProperty(); //获取参数值 if (boundSql.hasAdditionalParameter(propertyName)) { // issue #448 ask first for additional params value = boundSql.getAdditionalParameter(propertyName); } else if (parameterObject == null) { value = null; } else if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) { value = parameterObject; } else { //MetaObject是Mybatis用于处理对象属性的辅助类 MetaObject metaObject = configuration.newMetaObject(parameterObject); //如果参数不是Map,也不是List,则MetaObject是BeanWrapper //metaObject.getValue内部,通过JDK的反射获取参数的get方法,用反射的方式获取值,method.invoke(object); value = metaObject.getValue(propertyName); } TypeHandler typeHandler = parameterMapping.getTypeHandler(); JdbcType jdbcType = parameterMapping.getJdbcType(); if (value == null && jdbcType == null) { jdbcType = configuration.getJdbcTypeForNull(); } try { //内部实现上,会用PreparedStatement的方法来进行参数设置 typeHandler.setParameter(ps, i + 1, value, jdbcType); } catch (TypeException e) { throw new TypeException("Could not set parameters for mapping: " + parameterMapping + ". Cause: " + e, e); } catch (SQLException e) { throw new TypeException("Could not set parameters for mapping: " + parameterMapping + ". Cause: " + e, e); } } } } }
关于Mybatis中ParameterHandler的作用是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
参数
方法
问题
作用
更多
反射
处理
帮助
解答
易行
简单易行
内容
只有
对象
小伙
小伙伴
属性
方式
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
刘金玉网络技术视频教程
软件开发推进计划
数据库表设计完整步骤
服务器自带游戏
微信商城小程序源码含后台数据库
云南保山dns服务器云主机
虹口区网络技术咨询公司
我的世界服务器密室杀手高级彩蛋
湖南卫视电视直播软件开发
数据库个人自荐怎么写
华为服务器代码120
济南东浪网络技术有限公司
数据库生成连续日期
渭南软件开发招标
四川项目软件开发服务商
全国网络安全专业有多少人
云服务器上的数据库总是断开
怎样提高网络安全
服务器搭建一定要连显示屏吗
第七届网络安全教育周调查报告
服务器安全通知
txt数据导入数据库中
如何使用手机连接电脑服务器
荆州淘宝客软件开发
软件开发榜样
计算机网络安全项目经理
计算机网络技术将来发展好吗
软件开发文档包括哪些
部署消防网络安全工作
自动刷新闻软件开发