jfinal mysql date,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 date,jfinal与mysql数据类型拾掇大全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花呗在哪里更改还款日期
- 下一篇: php simpledateformat