IllegalArgumentException :argument type mismatch

上周学习的封装查询语句,今天在使用中查询语句的封装就发现了一个异常

java.Lang.IllegalArgumentException:argument type mismatch

单看名字的话应该是类型转换的问题,emmm,是不是之前说的java中date和mysql的datetime的问题,不能直接取出来呀?于是debug了一下,居然问题是出在了like的身上

private int like;

这就很奇怪了,这怎么可能会类型转换错误嘞,于是我就用了Integer,还是不行,裂开,然后就通过资料,看到了这句话.

出现此异常建议先检查出现异常处类的该字段属性是否和数据库读取出来的属性一致

那么就去数据库中查看,

Snipaste_2022-04-01_20-47-24

欸,会不会是无符号的问题,但是java好像没有unsigned,那么就直接改表吧,ok,成功解决。

总结:这个异常是因为字段属性和数据库读取出来的属性不一致,比如说可能会把long把int进行读取,把无符号直接读取,然后还有一个不会报错的地方,但是需要注意的点,如果是直接取,不用反射的话,mysql中的datetime需要用java的时间戳进行读取后转化,避免丢失时间。

mysql的datetime和java的date

posted @ 2022-04-07 23:54  stopyc  阅读(253)  评论(0编辑  收藏  举报