jfinal mysql 事务_mysql:JFinal的数据使用方法

前言:很荣幸在今天遇到一个小问题,关于JFinal的getInt()、getLong()方法和mysql的数据类型关联。如果mysql数据库中int类型字段使用了unsigned,那么JFinal就要使用getLong(),如果int类型字段没有使用unsigned,那么JFinal就要使用getInt(),否则就会出现类型不匹配错误。

了解mysql的数据类型

首先,我们来了解一下mysql的数据类型,这里我们只看int类型的

int[(m)]

有符号值:-2147683648 到2147683647(- 231 到231- 1)

无符号值:0到4294967295(0 到232 - 1) 4个字节

这意味着,如果你的数据字段是这样子的话

`uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id'

那么m=11是正确的,因为考虑到“-”(负数),长度最大为11位。

而如果你的数据字段是这样子的话

`uid` int(11) unsigned NOT NULL COMMENT '用户id'

那么m=11是没有意义的,因为最大长度为10位,如果你比较专业的话,此时,你的数据字段就应该是这样子的

`uid` int(10) unsigned NOT NULL COMMENT '用户id'

了解JFinal数据类型

同样,这里我们只关注getLong()和getInt()方法。

/**

* Get attribute of mysql type: int, integer, tinyint(n) n > 1, smallint, mediumint

*/

public Integer getInt(String attr) {

return (Integer)attrs.get(attr);

}

/**

* Get attribute of mysql type: bigint, unsign int

*/

public Long getLong(String attr) {

return (Long)attrs.get(attr);

}

注意unsigned int和int之间的区别。

Java的int数据

System.out.println("2147683647");

System.out.println("4294967295");

System.out.println(Integer.MAX_VALUE);//2147483647

这样你就明白了JFinal为什么要那样设计。

总结:小知识,长见识。

原文:http://blog.csdn.net/qing_gee/article/details/45503859

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值