java长字符串用什么类型来保存?

比如:数据库有images字段用来存放图片的图片.可是图片的路径太多了.需要存放好几张图片的路径

"http://www.xxxx.com/1.jpg,http://www.xxxx.com/2.jpg,http://www.xxxx.com/3.jpg,http://www.xxxx.com/2.jpg,http://www.xxxx.com/1.jpg"

这些路径字符串要保存到数据库的.
现在是提示错误:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'SMALL_IMAGES' at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3607)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)

现在用到String ,报错的提示好像是字符串太长,放不下了.这个需要怎么解决啊?

长风秋雁
浏览 1533回答 11
11回答

拉风的咖菲猫

这个和Java没有关系,把数据库相应的字段数据类型设置为varchar试试,是数据库的字段长度不够。。。

米脂

把数据库varchar长度设置长点一点,比如varchar(1000)。

智慧大石

把varchar长度设置长一点就ok,尽量不要用blob,我用过查询时会非常慢

莫回无

varchar 不过要考虑mysql 有一个总长度的限制,text不受这个限制,不过速度上好像会慢一些 一般来说varchar应该够用了

叮当猫咪

如果不限制图片的数量,建议拆分成多条记录;否则在前台做好验证,不要超出数据定义列的最大长度,如图片最多10个,每个url长度不超过100,可以定义为VARCHAR(1000)。 json的格式我觉得没必要,长度比逗号分隔的字符串更长。

慕哥9229398

varchar或者text,通过设置最大长度你这个例子,可以提取公共字段,进行拆分,域名,文件名或者可以进行分表,通过主子表的形式,拆分为多条记录来保存,通过ID关联记录ID,文件路径

慕田峪7331174

你的字段类型是什么,改成text吧

呼唤远方

用StringBuff

桃花长相依

varchar 长度设置大一点,或者直接改成text

宝慕林4294392

这种可以考虑用text,用json格式保存进去。 这种不定长的图片地址肯定会考虑text。lz并没有说明场景,假如在电商中的商品介绍副图,这个图片有多少是不可假设的。再之varchar在存储上是有一定的损失的。 踩的人可以下来说说缘由否?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java