ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql与JFinal的数据关系

2021-06-22 09:52:49  阅读:195  来源: 互联网

标签:11 int xxx unsigned jfinal mysql JFinal 数据


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的数据转换有影响:

  1. n>1时,jfinal要使用getInt。
  2. n=1时,jfinal要使用getBoolean。

三、unsigned

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

  1. unsigned int,表示数据>0,不包含负数,那么jfinal就要使用getLong。
  2. 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数据类型。

笑对现实的无奈,不能后退的时候,不再傍徨的时候,永远向前 路一直都在──陈奕迅《路一直都在》
本文出自:【沉默王二的博客

标签:11,int,xxx,unsigned,jfinal,mysql,JFinal,数据
来源: https://blog.51cto.com/u_2324584/2935281

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有