2010-12-22 150 views
0
CREATE TABLE IF NOT EXISTS `user` (
    `USER_ID` bigint(20) NOT NULL auto_increment, 
    `USER_ABOUT_YOU` varchar(255) default NULL, 
    `USER_COMMUNITY` tinyblob, 
    `USER_COUNTRY` varchar(255) default NULL, 
    `USER_GENDER` varchar(255) default NULL, 
    `USER_MAILING_LIST` bit(1) default NULL, 
    `USER_NAME` varchar(255) default NULL, 
    `USER_PASSWORD` varchar(255) default NULL, 
    PRIMARY KEY (`USER_ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

为什么USER_COMMUNITY定义为微小的blob。该字段接受复选框的值。当我将其更改为某些其他数据类型时,出现错误?为什么如此?MySQL字段类型

http://www.vaannila.com/spring/spring-hibernate-integration-1.html

回答

1

这就是它是如何定义的:

@Column(name="USER_COMMUNITY") 
public String[] getCommunity() { 
    return community; 
} 
public void setCommunity(String[] community) { 
    this.community = community; 
} 

表不存储检查但字符串数组。看起来,TINYBLOB是MYSQL上用于存储阵列的正确数据类型。

+0

如何查看我的数据库中的TinyBlob的内容如果我使用PHPmyadmin或skylog – theJava 2010-12-22 08:15:54

1

没有“复选框的值”。与大多数其他HTML输入控件一样,复选框将返回一个字符串。这些复选框实际上会返回一个值列表,因为它们都具有相同的名称。我不知道这个值是如何实际存储的,但我可以想象这是存储为一个字符串数组与一些伴奏元数据。这种数据很难存储在另一种字段类型中。

在什么字段类型你想改变它,以及你得到的错误是什么?

我实际上不会以这种方式存储这些数据,而是给user一个细节表,而不是在其中存储用户所属的社区。但是本教程似乎更关注jsp而不是数据库规范化。 ;)