ibatis中的parameterMap和parameterClass的应用详解

边云协同智能进化:大模型与小模型的动态训练与高效部署策略 本文深入探讨了边云协同架构下大模型与小模型的动态训练与高效部署策略。通过物流分拣、医疗影像等实战案例,展示了如何利用边云协作框架实现AI模型的智能进化,显著提升处理效率与准确性。重点解析了动态任务分配、增量学习和知识蒸馏等关键技术,为分布式训练场景提供优化方案。 阅读详情
属性parameterMap的值等于一个预先定义的元素的名称。parameterMap属性很少使用,更多的是使用的parameterClass
但是使用parameterMap可以提高数据库的访问效率,具体使用如下:
Xml代码  

     <parameterMap class="com.fenxiao.domain.CooperationDo" id="insertCooperationDoByMap" > 
            <parameter property="id"/> 
            <parameter property="supplierId"/> 
            <parameter property="supplierName"/>      
            <parameter property="distributorId"/>      
            <parameter property="distributorName"/>      
            <parameter property="status"/>      
            <parameter property="checkTime" />      
            <parameter property="applyTime" />      
    </parameterMap>
   
    <!-- 使用了map -->
    <insert id="Cooperation.insertCooperationByMap" parameterMap="insertCooperationDoByMap">
       insert into cooperation values(?,?,?,?,?,?,?,?);
       <selectKey resultClass="java.lang.Integer"  keyProperty="id">
        select max(id) from cooperation
    </selectKey>
    </insert>

    
    


domain层
public class CooperationDo {
    
    private int id ;
    private int supplierId ;
    private String supplierName ;
    private int distributorId ;
    private String distributorName ;
    private byte status ;
    private Date checkTime ;
    private Date applyTime ;
    ...........getter setter方法
    }

    
    
DAO类:


    public int insertByMap(CooperationDo cooperationDo);

DAO实现类

public int insertByMap(CooperationDo cooperationDo) {
        return (Integer)getSqlMapClientTemplate().insert("Cooperation.insertCooperationByMap", cooperationDo);
    }

    

    


测试类:
@Test
    public void insertByMap(){
        CooperationDo cooperationDo = new CooperationDo();
        cooperationDo.setDistributorId(4);
        cooperationDo.setDistributorName("aaa4");
        cooperationDo.setSupplierName("bbb4");
        cooperationDo.setSupplierId(44);
       cooperationDo.setStatus((byte)1);
      cooperationDo.setApplyTime(new Date());
      cooperationDo.setCheckTime(new Date());
       int i = cooperationDao.insertByMap(cooperationDo);
       System.out.println(i);
    }

 
现在来具体分析下:
 具体的parameterMap:
Xml代码  

    <parameterMap id=”parameterMapName”   [class=”com.domain.Product”]> 
            <parameter property =”propertyName”  
                    [jdbcType=”VARCHAR”] 
                    [javaType=”string”] 
                    [nullValue=”NUMERIC”]  
                    [null=”-9999999”] 
            /> 
           <parameter…… /> 
           <parameter …… /> 
    </parameterMap> 

            
           
Class属性是可选的,Class属性必须是JavaBean或Map实列,Class属性虽是可选的,但推荐大家指定,
Class属性可以用来验证传入的参数的合法性及优化查询

元素:

1.property

    属性property是传给statement的参数对象的Java Bean属性名称。该名称根据需要,可以在statement中多次出现(即在SQL语句SET子句中被更新的属性,也可以作为条件出现在WHERE子句中)。

 

2.jdbcType  

    属性jdbcType用于显式地指定给本属性(property)赋值的数据库字段的数据类型。

    注意! 大多数JDBC Driver只有在字段可以为NULL时需要指定jdbcType属性。因此,对于这些Driver,只是在字段可以为NULL时才需要指定type属性。

    注意! 当使用Oracle Driver时,如果没有给可以为NULL的字段指定jdbcType属性,当试图给这些字段赋值NULL时,会出现“Invalid column type”错误。

 

3.javaType
     属性javaType用于显式地指定被赋值参数Java属性的类名。

 

4.nullValue (要特别关注)

     属性nullValue的值可以是对于property类型来说任意的合法值,用于指定NULL的替换值。就是说,当Java Bean的属性值等于指定值时,相应的字段将赋值NULL。这个特性允许在应用中给不支持null的数据类型(即int,double,float等)赋值null。当这些数据类型的属性值匹配null值(即匹配-9999)时,NULL将代替null值写入数据库。

元素


最后总结列出几点ParameterMap需要特别注意的几个细节:

1.在配置ParameterMap的时候,如果传入的参数对像是元数据类型(int,string etc),那么在配置Parameter元素的时候,property的属性名使用value。通过这种情况主要使用在为存储指定参数的情况下。

2.如果ParameterMap中配置的parameter元素不包含在传入参数对象中(属性或IDictionary对象的一个key,value项),将会产生异常,而不管在statement中有没有用到。

3.在使用parameterMap的extends属性时,它将会继承extends值对应的parameterMap配置,并且会继承它的所有的参数映射,并且顺序是从继承的那配置为基准开始计算。这个在需要用到extends属性的时候要特别注意。

4.在为存储过程传参过程要特别注意,参数映射与存储过程的参数之间的顺序对应要正确。而且必须为提供与存储过程足够的参数(parameter配置足够多),即使存储过程的部分参数已经有默认值了。否则将抛出System.ArgumentOutOfRangeException异常。

5.正常情况下,应该尽量使用内联参数。
2023年高教社杯全国大学生数学建模竞赛 E 题:《黄河水沙监测数据分析》真题解析与 MATLAB 解决方案 🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。 阅读详情

相关推荐

手把手教你打造CTF动态靶场

公司想搞一个CTF比赛,需要一个竞赛靶场,于是这个任务就落在了我的身上,平台是利用CTFd框架,基于docker搭建的动态靶场,搭建过程中遇到的坑比较多,这里我会把每一个遇到的坑都指出来。我搭建的是CTFd的3.X的版本。第一次搭建的话,搭建的过程会有些痛苦,但是搭建完成后会越来越熟练,这个平台的可用性还是很高的。由于搭建的过程中遇到的坑太多了,各种各样的问题,所以决定写下这篇文章,把所有的坑都指出来,也算为后边想搭这个平台的小伙伴指一条路。Taps:资源来源:星海安全实验室如果你也对网络安全&黑客。

Python栈 4934

Mybatis之parameterMap和resultMap使用详解

Mybatis概述 Mybatis是目前比较经典的一个持久层框架,也是大部分初学者所接触的第一个持久层框架,在单纯使用Mybatis而不使用SpringBoot等整合框架的时候,往往需要自己配置XML文件,在平时配置XML文件的时候就会经常使用到paramaterType、parameterMap、resultType、resultMap, 如下。 <select id="findById" resultMap="ResultMap" parameterType="int"> selec

m0_67392661的博客 2720

无人机散热系统设计:从材料选择到智能调控的全面解析

本文全面解析无人机散热系统设计,从材料选择到智能调控,探讨了导热界面材料、轻量化散热结构和智能调控算法的应用。通过实战案例,展示了如何在极端环境下优化散热性能,提升无人机的工作效率和可靠性。

weixin_42567279的博客 430

parameterMap的使用

&lt;parameterMap class="User" id="insertUser-param"&gt; &lt;parameter property="username"/&gt; &lt;parameter property="password"/&gt; &lt;/parameterMap&gt; &lt;in

wanxiaotao12-126-com 5653

Unity 2021 LTS安装避坑指南:从下载到第一个3D项目的完整流程

本文提供了一份详尽的Unity 2021 LTS安装与首个3D项目创建指南。内容涵盖从Unity Hub下载、版本选择、模块安装避坑,到编辑器界面解析、创建旋转立方体脚本的完整流程,旨在帮助初学者快速搭建稳定开发环境并上手核心操作。

mango的博客 310

工业质检实战:用海康VisionMaster的BLOB分析搞定PCB焊点缺陷检测

本文详细介绍了如何利用海康VisionMaster平台的BLOB分析技术,构建一套针对PCB焊点缺陷的自动化视觉检测方案。文章从核心原理出发,重点阐述了如何通过动态阈值分割和模板匹配定位,克服工业现场光照不均、位置偏移等挑战,实现虚焊、漏焊等缺陷的精准、稳定检测,并提供了实战调优与系统集成的关键思路。

weixin_29091105的博客 562

parametermap用法

取parametermap得value值,可以使用map取值 例: Map map = new HashMap(); map = req.getParameterMap(); String startTime = map.get("startTime").toString(); 把'[ &amp;quot;  &amp;quot;]'替换成空字符穿 participantsflag =...

逗号ing的博客 1万+

学Simulink——基于Simulink的单相PWM整流器PI电压外环+电流内环控制建模示例

本文详细介绍了基于Simulink的单相PWM整流器双闭环控制仿真方法。通过电压外环PI控制器调节有功功率生成电流指令,电流内环PI控制器实现正弦电流跟踪,最终达到输出电压稳定(400V±2V)、输入电流THD<3%、功率因数>0.99的目标。文章包含系统架构、数学模型、Simulink搭建步骤(主电路、PI控制器、SPWM调制等)及三种典型工况的仿真验证,并给出电感设计、数字实现等工程实践要点。该方案克服了传统整流器高谐波、低功率因数的问题,为绿色电源开发提供了可验证的仿真模型。

xiaoheshang_123的博客 75

ibatis Tips之parameterMap

parameterMap 属性parameterMap的值等于一个预先定义的&lt;parameterMap&gt;元素的名称。parameterMap属性很少使用,更多的是使用上面的parameterClass和inline parameter(接下来会讨论)。 注意!动态mapped statement只支持inline parameter,不支持parameter map。 param...

xulongfa的专栏 507

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

MoorePlus的博客 4223

Android 14.0 系统开机屏幕设置默认横屏显示

在14.0的系统ROM产品定制化开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从 两部分来实现,一部分是系统开机动画横屏显示,另一部分是系统屏幕显示横屏显示,从这两方面就可以做到开机默认横屏显示了

安卓兼职framework和app工程师的博客 2151

Ibatis2.0使用说明(二)——配置篇(3)

 statement中的参数简介:1. parameterClassparameterClass 属性的值是Java类的全限定名(即包括类的包名)。parameterClass属性是可选的,目的是限制输入参数的类型为指定的Java 类。虽然Parameter-class属性是可选的,建议你为每一个SQL都指定parameterClass。如果不指定parameterClass 参数,任何带有合适属

chaoma96的专栏 453

YOLO26改进策略【Neck】| CVPR2025 LCA轻量交叉注意力 跨层级双向引导 + 分层降噪增强,提升微小目标特征表达

简单相加、拼接融合无法建立深浅层双向约束关系,浅层微小目标易被深层背景覆盖,深层全局信息难以修正浅层噪声;普通单路自注意力仅单一层内建模依赖,缺少跨层级特征互引导机制,深浅特征信息割裂;标准多头跨注意力计算量大、参数量高,轻量化单模态检测/分割网络部署困难,无法区分前景目标与背景噪声。为此设计单模态轻量化交叉注意力LCA,构建浅层细节、深层语义双分支双向引导结构,轻量完成跨层级特征交互,同步降噪并强化单模态微小目标特征。

Limiiiing的博客 523

ibatis学习(二)--ibatis使用介绍

  SqlMapClient对象 这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernate中sessionFactory的定义类似)。如: import java.io.Reader; import com.i...

咖啡妆 370

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ibatis 注意点

insert,update,delete  返回值 insert  返回的为插入的主键值,但必须在配置文件中加入 &lt;selectKey/&gt; iBATIS三种自动生成主键的方式    &lt;!-- Oracle SEQUENCE Example using .NET 1.1 System.Data.OracleClient --&gt; &lt; insert ...

To Strive To Seek To Find Not To Yield 164

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Spring iBatis Sqlmap 以及 parameterClass 和 parameterMap 的使用方法

int, String等 原始类输入到 DB 的时候使用 parameterClass 即可 但是如果 Member, Test等 类的时候 要用 parameterMap   parameterClass="String" >   SELECT * from testboard WHERE NUM = #NUM#       parameterMap="boardIns

pjx627al的专栏 1574

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Ibatis】(八)、parameterMap详解

parameterMap 属性parameterMap的值等于一个预先定义的元素的名称。parameterMap属性很少使用,更多的是使用上面的parameterClass和inline parameter(接下来会讨论)。 注意!动态mapped statement只支持inline parameter,不支持parameter map。 parameterMap的基本思想是定义一系列有次

Java 8950

关于iBatis/iBatis.net中parameterMap使用的一个技巧(亲自实践)

在iBatis中 当用parameterMap作为ibatis映射输入参数时,要在ibatis的配置文件中作相应的声明。 但我们也可以不在ibatis映射文件中作声明,应用方法如下: ibatis映射文件sqlmap.xml中:       UPDATE TAB SET EDITION=#ID# WHERE USERID=#USERID# 在我们要调用sql查询语

bigheadsheep的专栏 3434

关于ibatis的parameter index out of range (1 > number parameters which is 0).异常

说起来这个异常很坑爹啊,调试了一下午,数据一点都

lianyutao的专栏 5617

再说ibatis中关于parameterMap的应用

在以前的一篇文中介绍到,当用parameterMap作为ibatis映射输入参数时,要在ibatis的配置文件中 作相应的声明。但我们也可以不在ibatis映射文件中作声明,应用方法如下: ibatis映射文件sqlmap.xml中: UPDATE TAB SET EDITION=#ID# WHERE USERID=#USERID# 在我们要调用sql查询语句的java方法中有:...

duqiangcise 410

iBATIS SQL Maps之支持ParameterMap和ResultMap的数据类型的对照表。

博文中的内容来源《iBATIS SQL Maps开发指南Version2.0》这一本书,感激不尽。

孤芳不自赏 612

Ibatis2.0使用说明(二)——配置篇(3)[原]

statement中的参数简介:1. parameterClassparameterClass 属性的值是Java类的全限定名(即包括类的包名)。parameterClass属性是可选的,目的是限制输入参数的类型为指定的Java 类。虽然Parameter-class属性是可选的,建议你为每一个SQL都指定parameterClass。如果不指定parameterClass 参数,任何

猴子腿儿的Blog 1812

Ibatis2.0使用说明——配置篇(3)

 statement中的参数简介:1. parameterClassparameterClass 属性的值是Java类的全限定名(即包括类的包名)。parameterClass属性是可选的,目的是限制输入参数的类型为指定的Java 类。虽然Parameter-class属性是可选的,建议你为每一个SQL都指定parameterClass。如果不指定parameterClass

hjpengjava的专栏 536

ibatis中SqlMapClient对象详解

这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernate中sessionFactory的定义类似)。如: import java.io.Reader; import com.ibatis.common.resources.Resources;

yinghuadeyanlei的专栏 1108
上一篇: SpringData 作用简介
下一篇: Java调用net 的 webservice 故障排除实战分享
chuck_kui
博客等级 码龄12年 46粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值