当前位置: 首页 > news >正文

MyBatis的xml里#{}的参数为null报错、将null作为参数传递报错问题

今天在调试的过程中发现一个bug,把传入的参数写到查询分析器中执行没有问题,但是在程序中执行就报错:org.springframework.jdbc.UncategorizedSQLException : Error setting null parameter.  Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException:无效的列类型

网上找了很久,才找到了错误原因:myBatis的参数,不能传入null(但是在查询分析器中参数为null是允许的),如果传入了null,SQL在类型匹配时找不到匹配的类型,就会报上面的错。

解决办法:

1、在参数后面添加jdbcType=VARCHAR

2、使用if标签

<if test="id != null and id !=''">

 and id = #{id}

</if>

3、将null替换成“”字符串;

例如:把 insert into user(id,name) values(#{id},#{name}) 
     修改成:insert into user(id,name) values(#{id,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR}) 
就可以解决这个问题了。
 

http://www.lryc.cn/news/189739.html

相关文章:

  • 【网络安全】「漏洞原理」(一)SQL 注入漏洞之概念介绍
  • Go语言错误处理最佳实践
  • python结合excel数据轻松实现接口自动化测试
  • 构建精致 Chrome 插件:开箱即用的 TypeScript 模板 | 开源日报 No.51
  • 在Windows下自己从源码编译Python3.10.13成安装包
  • WIN10如何搭建自己的博客
  • uniapp 首页制作
  • 意大利航天飞行器公司【Sidereus】完成510万欧元融资
  • 10-网络篇-DHCP获取的参数详解
  • MVCC底层原理
  • 云原生Docker容器管理
  • 1.Cesium For Unity插件安装
  • 浅述安防视频可视化场景中TSINGSEE青犀AI智能化应用的分析
  • 百度飞浆ResNet50大模型微调实现十二种猫图像分类
  • 多服务器云探针源码(服务器云监控)/多服务器多节点_云监控程序python源码
  • ESP8266 WiFi物联网智能插座—下位机软件实现
  • 微信小程序--下拉选择框组件封装,可CV直接使用
  • 代码随想录算法训练营第五十九天 |647. 回文子串、516.最长回文子序列、动态规划总结篇
  • 互联网性能和可用性优化CDN和DNS
  • 使用 ErrorStack 在出现报错 ORA-14402 时产生的日志量
  • 详解Spring-ApplicationContext
  • 关键字extern、static与const
  • 虹科方案|国庆出游季,古建筑振动监测让历史古迹不再受损
  • Python学习笔记-使用哈希算法Hash,Hashlib进行数据加密
  • 跨境电商能否成为黄河流域产业带的新引擎?
  • 从数据到决策:企业投资信息查询API的关键作用
  • NSIC2050JBT3G 车规级120V 50mA ±15% 用于LED照明的线性恒流调节器(CCR) 增强汽车安全
  • LuatOS-SOC接口文档(air780E)-- ftp - ftp 客户端
  • 第二证券:市净率高好还是低好?
  • HTTP协议是什么