mysql 存储长文本

在写项目时,需要把文章中的图文存储到mysql中数据库中,查了一下>可以使用TEXT,BLOB俩种类型来存储长文本。

1. TEXT

TEXT有4有类型:

  • TINYTEXT 256bytes
  • TEXT 64kb
  • MEDIUMTEXT 16Mb
  • LONGTEXT 4GB

使用注解

@Lob
@Basic(fetch=FetchType.LAZY)
@Column(columnDefinition="TEXT",nullable=true)
public String getContent() {
    return Content;
}

2. BLOB

  • TINYBLOB
  • BLOB、
  • MEDIUMBLOB
  • LONGBLOB

blob 保存的是二进制数据,利用这个特性,可以把图片存储到数据库里面。text只能存储文本。

使用注解

@Lob
@Basic(fetch=FetchType.LAZY)
@Column(columnDefinition="BLOB",nullable=true)
public String getContent() {
    return Content;
}

1. 我使用的是text的,因为blob存储的是二进制格式,所以长文本里面的搜有数据都是二进制数据,在上传图文的时候,传过来是String,保存起来,读取都需要转换,还有javaBean设计的时候也要把文本的类型弄成BLOB类型,在加上hibernate 4 ,生成blob对象还要LobHelper,各种麻烦,于是就使用text来存储。

2 . 那么如何存储文章中的图片呢,我的处理是把文字与图片的地址都存储成text类型,使用特定的标签把图片地址包起来,然后在解析的时候,使用正则表达式把图片拿出来,在去服务器去访问。

3. 当你把文章存进去之后,会发现使用 文章中包含 换行符 之后的文字都不见了,其实他里面的数据还是有的,为了方便我把换行符都换为了

你可能感兴趣的:(数据库)