jfinal mysql date,jfinal与mysql数据类型拾掇大全
前言:今天在做jfinal和mysql的數(shù)據(jù)轉(zhuǎn)換時(shí)出現(xiàn)了java.lang.Boolean cannot be cast to java.lang.Integer錯(cuò)誤,而之前我就遇到過(guò)這樣的問(wèn)題mysql與JFinal的數(shù)據(jù)關(guān)系,這使我意識(shí)到有必要整理一下jfinal與mysql數(shù)據(jù)類型關(guān)系。
mysql
jfinal
例子
編號(hào)
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
然后,針對(duì)以上內(nèi)容,我想說(shuō)明以下幾點(diǎn):
0002和0009
注意0002中的tinyint(n) n > 1,在mysql中,一般為了表示狀態(tài),我們可能都會(huì)選擇tinyint,比如status,我們用0表示未審核,1表示審核,2表示拒絕,這個(gè)時(shí)候我們依然會(huì)將n設(shè)置為1,但是到了jfinal進(jìn)行轉(zhuǎn)換的時(shí)候,如果你還是用getInt()方法,那么就會(huì)拋出java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer。
所以,如果是這種情況,請(qǐng)?jiān)O(shè)置n>1。
當(dāng)然這也為我們提供了方便,如果你用tinyint(1)表示is_delete,0表示未刪除,1表示已刪除。那么jfinal的getBoolean還是夠方便。
0003和0004
這里請(qǐng)注意到unsigned ,在數(shù)據(jù)庫(kù)中,我們很少用-1、-2、-3、… 、-100000等來(lái)表示數(shù)據(jù),那么我們的mysql中就可能把數(shù)據(jù)類型設(shè)置為“無(wú)符號(hào)(unsigned)”,那么此時(shí)請(qǐng)一定要注意“unsigned int”就不能再使用getInt()來(lái)完成轉(zhuǎn)換了,“unsigned bigint”就不能使用getLong()轉(zhuǎn)換,而要替換成對(duì)應(yīng)的getLong()和getBigInteger()。
總結(jié)
以上是生活随笔為你收集整理的jfinal mysql date,jfinal与mysql数据类型拾掇大全的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 花呗在哪里更改还款日期
- 下一篇: SQL 100+个最佳入门案例实践(覆盖