mysql和jfinal的区别_mysql与JFinal的数据关系-阿里云开发者社区

本文详细梳理了JFinal与MySQL在数据类型上的对应关系,包括varchar到String,int到int,bigint到long等,并强调了tinyint(n)在n>1和n=1时在JFinal中应使用的不同方法,以及unsigned类型的影响。同时指出,对于int(m)类型的字段,m的值需要考虑负数的情况。最后,提供了JFinal获取数据的API示例。
摘要由CSDN通过智能技术生成

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

二、tinyint

在mysql中,tinyint(n)中的n对jfinal的数据转换有影响:

n>1时,jfinal要使用getInt。

n=1时,jfinal要使用getBoolean。

三、unsigned

在mysql中unsigned表示有无符号,举例来说:

unsigned int,表示数据>0,不包含负数,那么jfinal就要使用getLong。

unsigned bigint,表示数据>0,不包含负数,那么jfinal就要使用getBigInteger。

四、int(m)

关于mysql中int(m)中的m,这当然包含bigint(m)的m。

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的api

只看如下代码:

/**

* 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);

}

方法很详细的介绍了应该匹配哪一种mysql数据类型。

笑对现实的无奈,不能后退的时候,不再傍徨的时候,永远向前 路一直都在──陈奕迅《路一直都在》

本文出自:【沉默王二的博客】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值