Java异常:Java.lang.ClassCastException:Java.lang.Long不能转换为Java.lang.Integer
我有一个数据库表,其中一个属性名为:Java异常:Java.lang.ClassCastException:Java.lang.Long不能转换为Java.lang.Integer,java,exception,jdbc,type-conversion,long-integer,Java,Exception,Jdbc,Type Conversion,Long Integer,我有一个数据库表,其中一个属性名为: task_id and type is "int unsigned". 在java中,我尝试使用jdbc TMeplate从该表中读取数据,如下所示: string sql = select task_id from table where ......... List<Map<String, Object>> list = jdbcTemplate.queryForList(sql); 但是如果我使用
task_id and type is "int unsigned".
在java中,我尝试使用jdbc TMeplate从该表中读取数据,如下所示:
string sql = select task_id from table where .........
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
但是如果我使用
Long x=(Long)task.get("task_id"); //work.
那么它工作得很好。
那么,在这种情况下,java如何决定对象包含Integer还是Long?为什么Integer typecast失败,但Long有效?请记住,
int unsigned
是数据库指定的类型。我猜它是一个32位无符号整数类型,因此从0变为2^32int unsigned
的整个可能范围,您必须在Java中使用另一种类型long
(或long
)是这里显而易见的选择。有意义。谢谢
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
Long x=(Long)task.get("task_id"); //work.