ODBC名:pixputin 
表名:table1 
在table1中存在字段pix,类型image. 
字段path1,类型varchar 
求代码:能够把c:\pix\目录下存在所有.jpg文件插入到sql中,要求: 
1.文件写入到pix字段 
2.相对路径写入到path1字段 
(这个c:\pix\目录下还有多级目录)
要完整代码,谢谢!
因为现在是在给另一个C/S的程序做接口才这样用 
有正确答案马上选用,恳请快点回答!

解决方案 »

  1.   

    用的jdbc,你换成odbc就可以了~import java.sql.*;
    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();
    }
    }