日期:2014-05-16 浏览次数:20553 次
?
注:
转载注明原文地址:?http://thetopofqingshan.iteye.com/blog/1566499
DatabasesConnect 类:http://thetopofqingshan.iteye.com/blog/1504004
建议:使用在数据库中储存文件路径与文件名
?
建表sql:
?
CREATE TABLE `file` ( `id` INT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id标识', `image` LONGBLOB NULL COMMENT '图片', `name` VARCHAR(50) NULL DEFAULT NULL COMMENT '图片名称', `createTime` DATETIME NULL DEFAULT NULL COMMENT '创建时间', `updateTime` DATETIME NULL DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) COMMENT='储存文件' COLLATE='utf8_general_ci' ENGINE=InnoDB;?
用于mysql数据库中存取文件:
package com.qingshan.jdbc;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* <pre>
* 用于mysql数据库中存取文件
* </pre>
* <hr Color="green" ></hr>
* 2012 admin Group 版权所有
* <hr Color="green" ></hr>
* @author thetopofadmin
* @version 1.0.0
* @since JDK 1.5
* @date 2012-6-23
*/
public class FileFecthDB {
private static Connection c = null;
static{
DatabasesConnect.name="root";
DatabasesConnect.password="admin";
DatabasesConnect.databaseName="admin";
try {
c = DatabasesConnect.getConnection(DatabasesConnect.MYSQL);//得到数据连接
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* <pre>
* 用于插入文件
* </pre>
* @throws ClassNotFoundException
* @throws SQLException
* @throws IOException
*
*/
public static void insert() throws ClassNotFoundException, SQLException, IOException{
PreparedStatement ps = c.prepareStatement("insert into file(image,name, createTime, updateTime) values(?,?,now(),now())");
File file = new File("C:/Users/Administrator/Pictures/【IThome.com】【桌面壁纸】这天空,我想飞/0.jpg");
if(!file.exists()){
throw new FileNotFoundException(file.getName().toString());
}
InputStream is = new FileInputStream(file);
ps.setBinaryStream(1, is);
ps.setString(2, file.getName().toString());
ps.execute();
is.close();
ps.close();
c.close();
}
/**
* <pre>
* 用于取出文件
* </pre>
* @throws ClassNotFoundException
* @throws SQLException
* @throws IOException
*
*/
public static void select() throws ClassNotFoundException, SQLException, IOException{
Statement s = c.createStatement();
ResultSet rs = s.executeQuery("select *from file");
while(rs.next()){
InputStream is = rs.getBinaryStream("image");//取出文件后
File file = new File("A:/"+rs.getString("name"));//储存文件的路径
OutputStream os = new FileOutputStream(file);
byte b[] = new byte[1024*20];
while(is.read(b) != -1){
os.write(b);
}
is.close();
os.close();
}
rs.close();
s.close();
c.close();
}
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {
insert();
// select();
}
}
?