为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

长风秋雁 2019-03-01 10:33:14
比如:数据库有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 ,报错的提示好像是字符串太长,放不下了.这个需要怎么解决啊?
查看完整描述

11 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-03-01
?
米脂

TA贡献1836条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-03-01
?
智慧大石

TA贡献1946条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-03-01
?
莫回无

TA贡献1865条经验 获得超7个赞

varchar 不过要考虑mysql 有一个总长度的限制,text不受这个限制,不过速度上好像会慢一些

一般来说varchar应该够用了

查看完整回答
反对 回复 2019-03-01
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

如果不限制图片的数量,建议拆分成多条记录;
否则在前台做好验证,不要超出数据定义列的最大长度,如图片最多10个,每个url长度不超过100,可以定义为VARCHAR(1000)。

json的格式我觉得没必要,长度比逗号分隔的字符串更长。

查看完整回答
反对 回复 2019-03-01
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-03-01
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

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

查看完整回答
反对 回复 2019-03-01
?
呼唤远方

TA贡献1856条经验 获得超11个赞

用StringBuff

查看完整回答
反对 回复 2019-03-01
?
桃花长相依

TA贡献1860条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-03-01
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

这种可以考虑用text,用json格式保存进去。

这种不定长的图片地址肯定会考虑text。lz并没有说明场景,假如在电商中的商品介绍副图,这个图片有多少是不可假设的。再之varchar在存储上是有一定的损失的。

踩的人可以下来说说缘由否?

查看完整回答
反对 回复 2019-03-01
  • 11 回答
  • 0 关注
  • 1531 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号