mysql和jfinal的区别_jfinal与mysql数据类型整理大全

刚接触Lua,睁眼瞎呀。背景:我接手的项目是接着别人做了90%的东西继续做,使用cocos2d-x引擎,从c++调用lua资源。调用类方法的时候出了这个错误attempt to call

前言:今天在做jfinal和mysql的数据转换时出现了java.lang.Boolean cannot be cast to java.lang.Integer错误,而之前我就遇到过这样的问题mysql与JFinal的数据关系,这使我意识到有必要整理一下jfinal与mysql数据类型关系。

mysql

jfinal

例子

编号

varchar, char, enum, set, text, tinytext, mediumtext, longtext

String

getStr(“xxx”)

0001

int, integer, tinyint(n) n > 1, smallint, mediumint

int

getInt(“xxx”)

0002

bigint, unsign int

long

getLong(“xxx”)

0003

unsigned bigint

BigInteger

getBigInteger(“xxx”)

0004

date, year

Date

getDate(“xxx”)

0005

time

Time

getTime(“xxx”)

0006

timestamp, datetime

Timestamp

getTimestamp(“xxx”)

0006

real, double

Double

getDouble(“xxx”)

0007

float

Float

getFloat(“xxx”)

0008

bit, tinyint(1)

Boolean

getBoolean(“xxx”)

0009

decimal, numeric

BigDecimal

getBigDecimal(“xxx”)

0010

binary, varbinary, tinyblob, blob, mediumblob, longblob

byte[]

getBytes(“xxx”)

0011

extends from Number

Number

getNumber(“xxx”)

0012

然后,针对以上内容,我想说明以下几点:

0002和0009

注意0002中的tinyint(n) n > 1,在mysql中,一般为了表示状态,我们可能都会选择tinyint,比如status,我们用0表示未审核,1表示审核,2表示拒绝,这个时候我们依然会将n设置为1,但是到了jfinal进行转换的时候,如果你还是用getInt()方法,那么就会抛出java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer。

所以,如果是这种情况,请设置n>1。

当然这也为我们提供了方便,如果你用tinyint(1)表示is_delete,0表示未删除,1表示已删除。那么jfinal的getBoolean还是够方便。

0003和0004

这里请注意到unsigned ,在数据库中,我们很少用-1、-2、-3、… 、-100000等来表示数据,那么我们的mysql中就可能把数据类型设置为“无符号(unsigned)”,,那么此时请一定要注意“unsigned int”就不能再使用getInt()来完成转换了,“unsigned bigint”就不能使用getLong()转换,而要替换成对应的getLong()和getBigInteger()。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值