JDBC读取文件(CLOB)

上一篇文章《JDBC保存文件(CLOB)》,我们使用PreparedStatement接口把文件存储到MySQL数据库中。

本文介绍使用JDBC从MySQL数据库把文件内容读取出来,并保存到本地硬盘。

PreparedStatement的getClob() 方法用于从数据库中获取文件信息。

1 PreparedStatement的getClob()方法

public Clob getClob(int columnIndex){}

2 JDBC读取文件的示例

2.1 确保文件已经存储在表中

上篇文章,我们已经把文件存储到file_test表,具体可以查看:《JDBC保存文件(CLOB)》

2.2 编写RetrieveFile

package com.yiidian;

import java.io.*;
import java.sql.*;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class RetrieveFile {
    public static void main(String args[])throws Exception {
        try {
            Class.forName("com.mysql.jdbc.Driver");

            Connection con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test", "root", "root");

            PreparedStatement ps=con.prepareStatement("select * from file_test");
            ResultSet rs=ps.executeQuery();
            rs.next();
            Clob c=rs.getClob(3);
            Reader r=c.getCharacterStream();

            FileWriter fw=new FileWriter("d:\\upload\\retrivefile.txt");

            int i;
            while((i=r.read())!=-1)
                fw.write((char)i);

            fw.close();

            con.close();
        }catch(Exception e){
            System.out.println(e);
        }
    }
}

2.3 运行测试

执行完上面的RetrieveFile类后,查看d:/upload/目录,结果如下:

可以打开文件查看内容是否正确。

推荐好课