使用Java Web对Access数据库的备注字段操作问题

        近期有个小CMS项目,由于服务器、人员以及管理制度等一系列问题,不得不采用Java Web+Access这种不伦不类的组合进行开发,期间遇到了一个小问题,那就是文章内容采用Access的“备注”类型存取时,发生自动截断的问题。也就是说,存进去10000字的文章,只能显示出3000字。经过查找资料和实验,发现这个问题是PreparedStatement的setter()和getter()方法使用不当造成的。

        官方资料显示,Access的“备注”字段的字符个数,若通过用户界面输入则最大为65,535;若以编程方式输入时则可支持1G字节的字符存储。所以不存在数据库字段类型选择错误的问题。那么只有在存取的过程中找问题了。

        Java的String类型忘了究竟能存放多少个字符了(10的16次方?),总之也不是String类型的错误。因此,就将问题定位在了处理数据库存放的setter()和getter()方法上了。经查,setString()方法能存的值取决于该参数相对于驱动程序在 VARCHAR 值上的限制的大小。Google了一下,网上提供了各种方法,试了试clob的方式,发现Access似乎不支持clob,因此我决定试一试字符流的方式进行存取。经过试验,终于成功,现将代码提供如下:

一、使用setCharacterStream()向Access数据库中存放数据

二、将字节流方法封装起来

三、调用二中的方法,实现从Access数据库中完整取数据

        有不尽之处,请看客不吝指教。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值