MySQL传参字段与DB字段数据类型不一致导致精度问题采坑记录

假设t_user表中,user_id字段的数据类型为varchar

MySQL传参字段与DB字段数据类型不一致

select * from t_user where merchant_id = 10086;  //可能会查出多条数据

select * from t_user where merchant_id = '10086';  //只会查出单条数据

MyBatis Mapper与DB字段数据类型不一致

如果Mapper查询接口传入userId的数据类型为Long,那么会导致精度问题,查询的数据有多条

正确传参:Mapper查询接口传入userId的数据类型应该为String

public interface MerchantSiteUserMapper {

    //String queryUserInfo(Long userId);  //错误传参
    String queryUserInfo(String userId);  //正确传参
}
<select id="queryUserInfo" resultType="BaseResultMap">
  select
  <include refid="Base_Column_List"/>
  from t_user where merchant_id = #{userId}
</select>

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/inconsistent-data-types-between-mysql-parameter-fields-and-db-fields-lead-to-accuracy-issues/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
MySQL传参字段与DB字段数据类型不一致导致精度问题采坑记录
假设t_user表中,user_id字段的数据类型为varchar MySQL传参字段与DB字段数据类型不一致 select * from t_user where merchant_id = 10086; //可能会查出多条……
<<上一篇
下一篇>>
文章目录
关闭
目 录