ODBC名:pixputin
表名:table1
在table1中存在字段pix,类型image.
字段path1,类型varchar
求代码:能够把c:\pix\目录下存在所有.jpg文件插入到sql中,要求:
1.文件写入到pix字段
2.相对路径写入到path1字段
(这个c:\pix\目录下还有多级目录)
要完整代码,谢谢!
因为现在是在给另一个C/S的程序做接口才这样用
有正确答案马上选用,恳请快点回答!
表名:table1
在table1中存在字段pix,类型image.
字段path1,类型varchar
求代码:能够把c:\pix\目录下存在所有.jpg文件插入到sql中,要求:
1.文件写入到pix字段
2.相对路径写入到path1字段
(这个c:\pix\目录下还有多级目录)
要完整代码,谢谢!
因为现在是在给另一个C/S的程序做接口才这样用
有正确答案马上选用,恳请快点回答!
import java.sql.*;
import java.io.*;
import java.util.*;
public class WriteAmages {
private Connection conn = null;
private PreparedStatement ps = null;
InputStream in = null;
File file = null;
ArrayList al = new ArrayList();
//连接数据库
public WriteAmages() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
conn = DriverManager.getConnection(url, "pp", "pp"); } catch (Exception e) {
e.printStackTrace();
}
}
//递归遍利文件夹,找到所有符合条件为.jpg格式的文件,放入ArrayList
public ArrayList getFiles(String path) {
file = new File(path);
File[] files = null;
files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory())
getFiles(files[i].getAbsolutePath());
else if (files[i].getName().endsWith(".jpg"))
al.add(files[i].getAbsolutePath());
}
return al;
}
//将遍利得来的数据插入数据库.
public void write(ArrayList filenames) { for (int i = 0; i < filenames.size(); i++) {
String file = (String) filenames.get(i);
String sql = "insert into table1 values (?,?) ";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, file);
InputStream in = new FileInputStream(file);
ps.setBinaryStream(2, in, in.available());
ps.executeUpdate(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
//关闭连接
public void close()throws SQLException{
if(ps!=null)
ps.close();
if(conn!=null)
conn.close();
}
public static void main(String[] args) throws SQLException{
WriteAmages wa = new WriteAmages();
ArrayList al = wa.getFiles("c:/pix");
wa.write(al);
wa.close();
}
}