今天同事在初始化數據時,在初始手機號遇到如下報錯:

我實體類的字段如下:
@Column @Comment("購車人手機號") @ColDefine(type = ColType.VARCHAR, width = 20) private String customerPhone;
插入的sql如下:
ALTER TABLE `order_after_main` ADD COLUMN `customerPhone` int(32) NULL DEFAULT 0 COMMENT '購車人手機號' ;
此刻相信眼尖的同志已經發現原因了,原因即:我實體類的字段類型為vachar,而sql的類型為int,而初始化來的手機號為11位數字,而mysql int數據范圍 是 -2000000000 to 2000000000,11位的手機號顯然已經超出int數據范圍,故插數據時報了“超過數據范圍”的錯。
總結:首先我誤寫了sql,沒有將sql的字段類型與實體類的字段類型對應,然后sql的字段類型又未滿足數據范圍長度,而我將sql中的數據類型改為vachaer,並給予32的長度問題即解決,總之,寫sql一定要用心,工作不能馬虎。檢討一下自己,切切之。