程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql:JFinal的數據使用方法

mysql:JFinal的數據使用方法

編輯:MySQL綜合教程

mysql:JFinal的數據使用方法


前言:很榮幸在今天遇到一個小問題,關於JFinal的getInt()、getLong()方法和mysql的數據類型關聯。如果mysql數據庫中int類型字段使用了unsigned,那麼JFinal就要使用getLong(),如果int類型字段沒有使用unsigned,那麼JFinal就要使用getInt(),否則就會出現類型不匹配錯誤。

了解mysql的數據類型

首先,我們來了解一下mysql的數據類型,這裡我們只看int類型的

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'

如果你想了解更多的mysql數據內幕,請查看http://www.cnblogs.com/kwishly/archive/2012/04/19/2457450.html文章。

了解JFinal數據類型

同樣,這裡我們只關注getLong()和getInt()方法。
/**
  * 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);
 }

注意unsigned int和int之間的區別。

Java的int數據

System.out.println("2147683647");
  System.out.println("4294967295");
  System.out.println(Integer.MAX_VALUE);//2147483647

這樣你就明白了JFinal為什麼要那樣設計。
總結:小知識,長見識。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved