jfinal与mysql数据类型整理大全

前言:今天在做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()。

旅行,有一种苍凉,“浮云游子意,落日故人情”,

jfinal与mysql数据类型整理大全

相关文章:

你感兴趣的文章:

标签云: