用StringBuilder连接MYSQL字段时被清空的问题
2016-07-11 10:57
375 查看
问题描述
读取MySQL的数据,然后使用StringBuilder进行连接,但在运行时发现每次
append到一个字段的时候
StringBuilder就会被清空,最后只剩后边的几个字段。
假如读出了四个字段:
字段名称 | 值 |
---|---|
id | 10150145806225128 |
姓名 | 张三 |
消息 | 謝謝大家支持。 |
时间 | 2016-06-13 19:09:47 |
10150145806225128;张三;謝謝大家支持。;2016-06-13 19:09:47;0
但实际的输出过程是:
10150145806225128 10150145806225128;张三 10150145806225128;张三;謝謝大家支持。 2016-06-13 19:09:47 最终:2016-06-13 19:09:47
可以看到在
append完消息字段后,再
append时间的时候
StringBuilder被清空了。
如果
append的时候跳过消息字段,也没有任何问题
10150145806225128 10150145806225128;张三 10150145806225128;张三;2016-06-13 19:09:47 最终:10150145806225128;张三;2016-06-13 19:09:47
可能的解决方案
(1)首先考虑了StringBuilder长度限制的问题,但根据以往经验应该不是,因为没有限制
length参数,而且所有字段数据加起来也不长。
(2)考虑了编码的影响,发现也没什么问题,从数据库到程序都使用了
utf8,在程序里加了强制转换也依然没什么用处。
(3)怀疑是字段内容的问题,该字段为消息字段,内容为中文,如果把内容直接复制出来,在程序里直接
append没有任何问题,但是如果从数据库里读再
append就会出现清空的现象。
感觉应该是读取数据库的时候在字段内容末尾加了什么奇怪的东西,加了个
trim()试了下,竟然成功了……
10150145806225128 10150145806225128;张三 10150145806225128;张三;謝謝大家支持。 10150145806225128;张三;謝謝大家支持。;2016-06-13 19:09:47 最终:10150145806225128;张三;謝謝大家支持。;2016-06-13 19:09:47
总结
So,就这么解决了,下次读取数据库里文本的时候,记得trim()一下……相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复