我在做一个信息更新判断时,出现转换异常。
下面是转换中的代码段
前端传来或我后端接收的是String,在这里面我用了Integer.parseInt(uId),转换成int,但是,为什么还会报错呢?
接收,转换也都正常, 是不是,我在用对象查询 时,mybatis的语句可能出错,我将parameterType=“String”改为parameterType="com.hnsaturn.saturn005.entity.User"正常了。
但是为什么,我在登录时,不会报这样的错?
登录时也是用的这个service的查询方法,但是只是传userName 不传 id的。
下面是Mybatis的代码段
<!--查询用户-->
<select id="selectUser" resultType="com.hnsaturn.saturn005.entity.User"
parameterType="com.hnsaturn.saturn005.entity.User">
select * from user where user_name=#{userName} or id =#{id}
</select>
下面是控制台报错的
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
“”你这里 user表ID 类型是VARCHAR吧
是不是ID类型是INTEGER 进行查询筛选的时候类型不匹配的原因
你的uId 是 "30" ,是有引号的,所以转不了数字;
更改一下反序列化的配置;
或者你要图省事直接在这里把引号去掉也行
你报错的行号在哪里?在这之上吧?