ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Access 字段类型:【备注】 使用 getString() 读取字段内容是错误的!!!

2022-05-29 08:00:50  阅读:195  来源: 互联网

标签:body 读取 getString rs Access 备注


最近写一个小项目,用到 Access 数据库,其中有一个【表】的字段(body)类型是【备注】,用于存储比较多的文本。

我当时直接使用的 String body = rs.getString("body")

当时测试的时候没发现什么问题,随着字段 body 的内容越来越多时,发现每次读取字段值,只能取得部分数据,数据被截断了。

经过一个晚上的折腾,终于找到原因。

如果 Access 数据库的表的字段类型是【备注】,不能使用 rs.getString() 来读取,当字段值的长度达到一定长度时,rs.getString() 返回的数据会出现不完整,截断的问题。

解决方案:使用 rs.getBinaryStream()

InputStream is = rs.getBinaryStream("body");
ByteArrayOutputStream baos = new ByteArrayOutputStream(8192 * 2);

int count;
byte[] data = new byte[8192];
try
{
    while ((count = is.read(data)) != -1)
    {
        baos.write(data, 0, count);
    }

    is.close();
}
catch (IOException e)
{
    e.printStackTrace();
    System.exit(0); // 退出
}

String body = new String(baos.toByteArray(), Charset.forName("gbk"));

参考资料:

java Web开发中用jdbc-odbc桥读取access的文本和备注字段不完全的问题解决方案: https://www.dbmng.com/art-2176.html

使用Java Web对Access数据库的备注字段操作问题: https://blog.csdn.net/softwave/article/details/5500130

标签:body,读取,getString,rs,Access,备注
来源: https://www.cnblogs.com/personnel/p/16322807.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有