易截截图软件、单文件、免安装、纯绿色、仅160KB

使用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数据库中存放数据
//content为String型的文章内容
java.io.Reader clobReader = new java.io.StringReader(content);
pStatement.setCharacterStream(4, clobReader, content.length());
二、将字节流方法封装起来
public class UtilTools {
/*
* 在access数据库中,将Memo备注型字段里的数据完整取出
* @param InputStream
* @return StringBuilder
*/
public StringBuilder accessdbMemoToString(InputStream in)
{
BufferedReader reader=new BufferedReader(new InputStreamReader(in));
StringBuilder sb=new StringBuilder();
String line=null;
try {
while((line=reader.readLine())!=null){
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return sb;
}
三、调用二中的方法,实现从Access数据库中完整取数据
//db为相应的POJO对象,"content"为字段名称,rs为ResultSet对象
UtilTools ut = new UtilTools();
db.setContent(


相关文档:

C# access日期查询加#

C# access日期查询加#
if (((string)((ComboBoxItem)cmbField.SelectedItem).Value).Equals("System.DateTime"))
{
                    //判断日期的;
        & ......

JAVA和JSP之间的关系

我现在给你一个JAVA和JSP之间的关系,以及JAVA的完整认识
JAVA分为J2EE,J2SE.J2ME,下面分别介绍:
一.J2EE:Java 2 Platform Enterprise Edition 企业版,用于企业应用,支持分布式部署。 
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,
它对开发基于Web的多层应用提供了功能上的支持。它包 ......

java杂想

采用欲扬先抑的手法谈谈java:
      java没有指针只有引用是最大的败笔.正因为没有指针,很多操作要迂回婉转;垃圾收集机制也觉得是鸡肋,写个析构函数真的那么复杂吗, 有必要牺牲灵活性吗;函数调用的代价之高让人抓狂
但我还是选择了她:
      java的纯面向对象特 ......

★★★★★这几天的java学习

      这几天的学习 让我感到发懵,老师讲的很多,自己就根本无法去思考,只能一个劲的往里听,自己代码也不怎么会,老师讲过的能有个印象, 不过今天还好,讲到了Java基础加强,稍微感觉好点,并不是很难理解了,今天就开始今天课程的复习了,要想进步,只有自己艰苦努力啦!
    确 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号