zoukankan      html  css  js  c++  java
  • 对于jfinal中java.lang.Long cannot be cast to java.lang.Integer的解决方法

    @Jfinal 老大提供的解决方法

    当数据库字段为 int 型(有符号int型),但是如果在 sql 中使用了某些函数,jdbc 会自动转型为 long,例如:select sum(money) from account where accountId = 123。这个行为是 jdbc自动做的,目的是为了防止数据溢出,因为在本例中 money 本来是 int 型,但是 sum(money) 以后很可能数值会超过 java Integer.MAX_VALUE值。另一种 int 自动转 long 型是因为字段使用是无符号 int 型,这两种自动转型都是 jdbc 自动的,jfinal 未做任何干预。至于 int 型可以使用 getStr 读取出来,那必定是值为 null, 否则肯定会抛出类型转换异常。

    解决的办法通常两个:

    1:预知可能的转型,使用正确的类型变量去接收值,例如用 Long变量去接收 select sum(xxx)值。

    2:使用 getNumber(attr).intValue() 确切一定得到 Integer 值,或者使用 getNumber(attr).longValue() 确切一定得到 Long 值。

    没有去尝试,那么连后悔的资格都没有
  • 相关阅读:
    例解 Linux 下 Make 命令
    linux使用bin文件安装jdk
    Linux查看及设置系统字符集
    FTP的两种主动模式和被动模式
    Mongodb之主从复制
    Nginx配置认证登录
    AWK
    Redis+Keepalived实现高可用
    Redis哨兵配置
    Keepalived指定文件接收日志
  • 原文地址:https://www.cnblogs.com/li-yongjie/p/5387445.html
Copyright © 2011-2022 走看看