本文介绍: 在写javaweb项目的时候发现报的这个错误:org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=’brandName‘, mode=IN, javaType=class java.lang.Integer, jdbcType=null, numericScale=null, resultMapId=’null‘, jdbcTypeName=’null
org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='brandName', mode=IN, javaType=class java.lang.Integer, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Integer (java.lang.String and java.lang.Integer are in module java.base of loader 'bootstrap')
<update id="updateBrand" parameterType="java.lang.Integer">
update tb_brand set brand_name = #{brandName},company_name = # {companyName},ordered=#{ordered},description=#{description},status=#{status} where id=#{id};
</update>
发现sql并没有问题,sql解析参数数量和匹配的参数数量是一致的,后端servlet用debug进入后发现确实是在执行sql的时候报错,那么问题在哪里呢?
再看因为自己写的是修改,所以实际上parameterType的参数可以不传,但不知道为什么因为我在写mapper接口的时候自动生成的语句设置了parameterType参数为java.lang.Integer所以在执行sql语句开始报500错误
解决办法:
<update id="updateBrand" parameterType="com.sujju.brand.pojo.Brand">
update tb_brand set brand_name = #{brandName},company_name = #{companyName},ordered=#{ordered},description=#{description},status=#{status} where id=#{id};
</update>
将parameterType设置为自己实体类的路径或者把parameterType删除
原文地址:https://blog.csdn.net/qq_64373632/article/details/124235786
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_37302.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。