Mysql tinyint长度为1时在java中被转化成boolean型

来源:互联网 发布:手机淘宝积分有什么用 编辑:程序博客网 时间:2024/06/05 20:31

在项目中遇到一个巨坑,程序没问题,从mysql查询到的tinyint数据中莫名其妙的变成了布尔类型,导致后续出错。这种细节性的问题,只有遇到时才会关注到,记录备忘。


下面是详细解释:

在项目中有一个字段为user_type,长度设置为1,表示注册用户和非注册用户,是注册用户为 1,否则为 2。因为查询语句是使用的Jfinal相关函数,查找到其中的获取数据类型字段程序,如下所示:



在图中光标处断点发现,通过getObeject后,类型变为boolean。而其中tinyint长度为4的,经过转化后没有问题,确定是getObeject对长度为1的处理有问题。经过查找资料,发现网上确实有这个问题的介绍。链接如下:

http://www.cnblogs.com/joeylee/p/3878223.html

解决方法 .

Tinyint(1)  就只用来保存 bool 值  只有0和1  不要保存其他的值,如果要保存多的值,就用 Tinyint(4) 


附:

常见数据库字段类型与java.sql.Types对应表

  Oracle与java.sql.Types的对应     Oracle                                java.sql.Types       blob                                     blob   char                                     char   clob                                     clob   date                                    date   number                               decimal   long                                     varbinary   nclob,nvarchar2                   other   smallint                                smallint   timestamp                            timstamp   raw                                      varbinary   varchar2                               varchar    Sql server与java.sql.Types的对应     Sql server                           java.sql.Types     bigint (2005,2008)                bigint     timstamp,binary                    binary     bit                                         bit     char,nchar,unqualified          char     datetime                               date     money,smallmoney,decimal  decimal     float (2005,2008)                  double     float(2000)                            float     int                                          integer     image                                    longvarbinary     text,ntext,xml                        longvarchar        numeric                                 numeric      real                                       real      smallint                                smallint      datetime,smalldatetime       timestamp      tinyint                                  tinyint      varbinary                             varbinay      nvarchar,varchar                 varchar    DB2与java.sql.Types的对应     bigint                                       bigint     blob                                      blob     character,graphic                 char     clob                                      clob     date                                     date     decimal                                decimal     double                                 double      integer                               integer      longvargraphic                   longvarchar      longvarchar    real                                        real   smallint                                 smallint   time                                      time   timestamp                            timestamp   vargraphic                            varchar   varchar    MySQL与java.sql.Types的对应     MySQL                          java.sql.Types    bigint                              bigint     tinyblob                         binary     bit                                  bit     enum,set,char               char     date,year                      date     decimal,numeric            decimal     double,real                   double     mediumint,int                integer     blob,mediumblob           blob     longblob     float                               real    smallint                           smallint     time                             time     timestamp,datetime     timestamp     tinyint                           tinyint     varbinary,binary           varbinay     varchar,tinytext,text     varchar  




0 0
原创粉丝点击