怎样把一个zip文件插入数据库,求完整的Java代码实现,急急急

如题所述

你没要读取的,我没写。用的MySQL数据库
DROP TABLE IF EXISTS `t_song_file`;

CREATE TABLE `t_song_file` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`file_name` varchar(50) DEFAULT NULL,
`file` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

package com.song.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;

import com.song.dao.DBUtil;

public class InputStreamInDB {
public static void main(String[] args) throws Exception {
Connection conn=DBUtil.getConnection();
String sql="insert into t_song_file(file_name,file) values(?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1, "hello.zip");
ps.setBlob(2, getFileInputStream("C:/Users/songjunliang/Desktop/hello.zip"));
int tag=ps.executeUpdate();
if(1==tag)
{
System.out.println("success");
}
ps.close();
conn.close();
}
public static InputStream getFileInputStream(String filePath) throws Exception
{
File file=new File(filePath);
InputStream is=new FileInputStream(file);
return is;
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-14
数据库只能存数据,你可以把文件保存在一个路径下数据库只存一个路径,如果真的把文件用字节方式存入数据库效率很低追问

我想以字节形式保存

追答

那就把文件读出来,最好用Base64进行编码后放进去

追问

你好兄弟,我觉得你可以解决我的问题,但是我基础比较薄弱,你可以方便给我代码实现吗?不胜感激

或是我语音你,详细说一下我的问题

追答

我在上班呢!你新建一条数据库记录,属于分别是文件名和内容,你把内容用IO读出来放文本字符串存入

追问

好的,非常感谢,我先试着自己解决一下,不行的话我们晚上再讨论一下可以吗?

你好现在回到家了吗?

追答

回家了

追问

现在方便吗?

我给你说一下我这边的问题吧

追答

你用的是什么数据库

追问

一个xml文档,把内容复制出来当成一个String字符串

DB2

现在把这个字符串压缩成一个字节流数组

压缩前字符串插库

和压缩后插库

现在的问题点是:压缩后的字节流不能插库

追答

所以我叫你编码

追问

需求是:比较压缩前后所占数据库空间大小,这个是后话了,先要字节流插库

追答

用base64就可以存入了

现在字符串不能插入库吗

什么原因

追问

是压缩后的字节流

等我一会发你截图

追答

嗯嗯

追问

你好我加你微信吧,这个图片怎么传不进呢

追答

qq499699990

追问

好的,

第2个回答  2015-07-14
只保存路径
相似回答