- 论坛徽章:
- 0
|
我对JAVA不是很熟。以前主要从事C、C++
最近花了点时间,研究了一下把文件通过JSP应用存到数据库里面。。
1、从客户端获得 request.getInputStream,读到byte[]里面。客户端的form中含有文件域和其他类型的输入框的域,如text,textarea,checkbox,file等等;
2、对byte进行解析,转成String,应该是ASCII,根据-----------xx数据分割段进行解析,判断里面是否含有name,filename
如果是name,则读到String里面去;
如果含有filename,则把下面的数据段读到ByteArrayOutputStream里面去,然后在转换成byte[]数组。
3、现在已经实现了读到byte[]数组,并且通过 response.打印byte 能在网页上显示图片。所有图片都能正确显示。。其他域里面的String也读到对应变量中去了。
4、我现在想弄清楚的问题有2
如何把byte[]写到mysql的blob字段里面
为什么很多人都反对把文件存到数据库里面?据我从网上得到的反馈信息是 很多JAVA程序员认为 将文件插到数据库里面,会影响数据库的性能,理由呢?为什么会影响数据库性能?
我的分析是:当然随着数据量的增加,数据库的性能是会降低,主要由于数据文件多了,磁盘需要转多次才能找到数据文件。同时数据库里面插入大量数据,也会增加磁盘文件碎片,这个主要是由于各类数据库的数据文件结点发生变化。。。但这不是理由啊,因为你插入其他大量数据,也会增加数据文件空间啊。
假如不把文件存到数据库里面,如果直接放到一个目录下,如何实现对这些文件的权限管理?
说实话,我挺瞧不起有些个别 AVA程序员的,因为感觉他们大部分的情况下都是站在别人的肩膀上去完成一件事,当然这对于整个工程是有利的,因为可以很快去完成一件事,而不需要关心其他东西,但是最后造成的就是这些所谓的程序员不求甚解。这个问题,我在多个论坛请教过,我问他们,如何将二进制文件插到数据库,他们一般的回答就是有现成的JAR包,还有就随便描述一下流程,但是很多细节的事情,他们自己还没做过,还有的回答就是建议不要插到数据库里面,因为会影响性能,但具体理由没说清楚。。
望能者辩之,不能者止。 |
|