开发者社区> 问答> 正文

mybatis #{} 接收纯数字类型报错?报错

这是一个很简单的修改sql 参数类型为map 经过自己测试 plateNo这个参数的值只要为纯数字就会抛异常

这是打印的sql

这是sql的异常 网上找到的这个异常的错误大概是 varchar类型字段用了数值类型 上面可以看出字段plate_no的值确实为long类型 #{}这个占位符在sql编译后再编译参数 而编译参数后不是一定会带 '' 吗 就相当于参数最后为‘12345’

这里我暂时的解决办法是加一个CONCAT函数拼一个''

为啥纯数字就会抛这个异常 烦请大神解惑 万分感谢!

展开
收起
爱吃鱼的程序员 2020-06-06 09:35:26 571 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>#{}参数是使用的PrepareStatment,不是拼接字符串</p>
                    
    
                            也就是说#{} 不是所有参数都带一个''单引号  比如数值类型的参数是不带''单引号的?
                        
    
                        <p>jdbcType</p>
                    
    
                        <p>用$试试</p>
                    
    
                        <p>@Param("plateNo")Int plateNo</p>
    
    2020-06-06 09:35:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载