易截截图软件、单文件、免安装、纯绿色、仅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(


相关文档:

一个JAVA程序员的看法

    网上的这篇文章,写得很实在,故贴了出来......
    本人做软件开发大概有6年多了,从事java开发大概4年多,一直在上海.现在我在网上总是看到大家在讨论什么架构比什么架构好,什么技术比什么技术强. 对这个我想谈谈我的几点看法. 
   
    第一 ......

java 集成开发环境对比

Eclipse 具体的就不说了,都熟悉了O(∩_∩)O~, 最大的特点:它能接受由java开发者自己编写的开放源代码的插件。 NetBeans NetBeans是sun的唯一一款完全开源的产品,在功能上与Eclipse类似,但也有一些区别。如:它集成了最流行的Ajax,Eclipse需要安装第三方插件,Eclipse鼓励使用swt作为javaGUI库 ......

第1章 Java基础

第1章
 
Java基础
 
1.1            Java的历史和基本原理
1.2            Java字节码
1.3            Java术语
1.4 &nbs ......

JAVA面试题及答案(基础题122道)

JAVA相关基础知识
1、面向对象的特征有哪些方面 
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层 ......

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

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