在源码中有这样一句注释: @throws ClassCastException if the class datatype does not match the column type,
就是当泛型的类型与字段的类型不匹配时抛出ClassCastException 异常。
当ScalarHandler泛型使用Integer时,就报了该异常,是java.lang.Long不能转换成java.lang.Integer。
因为查询记录数,select count(*) from person,返回结果的类型是bigint类型,可以使用以下方式查看
create view v9 as
select count(*) from person
select column_name,column_comment,data_type
from information_schema.columns
where table_name='v9' and table_schema='db'
mysql的bigint的取值范围与java的Long的范围一致,就映射成Long类型。所以查询总记录数的泛型应该使用Long,一般我们都使用它的父类Number。