public class BlobTest {

  /**
    * @param args
    * @throws IOException
    * @throws SQLException
    */

  public static void main(String[] args) throws SQLException, IOException {
    // create();
    read();
  }

  static void read() throws SQLException, IOException {
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try {
      // 2.建立连接
      conn = JdbcUtils.getConnection();
      // conn = JdbcUtilsSing.getInstance().getConnection();
      // 3.创建语句
      st = conn.createStatement();

      // 4.执行语句
      rs = st.executeQuery("select big_bit    from blob_test");

      // 5.处理结果
      while (rs.next()) {
        // Blob blob = rs.getBlob(1);
        // InputStream in = blob.getBinaryStream();
        InputStream in = rs.getBinaryStream("big_bit");

        File file = new File("IMG_0002_bak.jpg");
        OutputStream out = new BufferedOutputStream(
            new FileOutputStream(file));
        byte[] buff = new byte[1024];
        for (int i = 0; (i = in.read(buff)) > 0;) {
          out.write(buff, 0, i);
        }
        out.close();
        in.close();
      }
    } finally {
      JdbcUtils.free(rs, st, conn);
    }
  }

  static void create() throws SQLException, IOException {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
      // 2.建立连接
      conn = JdbcUtils.getConnection();
      // conn = JdbcUtilsSing.getInstance().getConnection();
      // 3.创建语句
      String sql = "insert into blob_test(big_bit) values (?) ";
      ps = conn.prepareStatement(sql);
      File file = new File("IMG_0002.jpg");
      InputStream in = new BufferedInputStream(new FileInputStream(file));

      ps.setBinaryStream(1, in, (int) file.length());
      // 4.执行语句
      int i = ps.executeUpdate();
      in.close();

      System.out.println("i=" + i);
    } finally {
      JdbcUtils.free(rs, ps, conn);
    }
  }
}
public class ClobTest {

  /**
    * @param args
    * @throws IOException
    * @throws SQLException
    */

  public static void main(String[] args) throws SQLException, IOException {
    // create();
    read();
  }

  static void read() throws SQLException, IOException {
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try {
      // 2.建立连接
      conn = JdbcUtils.getConnection();
      // conn = JdbcUtilsSing.getInstance().getConnection();
      // 3.创建语句
      st = conn.createStatement();

      // 4.执行语句
      rs = st.executeQuery("select big_text    from clob_test");

      // 5.处理结果
      while (rs.next()) {
        Clob clob = rs.getClob(1);
        Reader reader = clob.getCharacterStream();
        // reader = rs.getCharacterStream(1);
        // String s = rs.getString(1);

        File file = new File("JdbUtils_bak.java");
        Writer writer = new BufferedWriter(new FileWriter(file));
        char[] buff = new char[1024];
        for (int i = 0; (i = reader.read(buff)) > 0;) {
          writer.write(buff, 0, i);
        }
        writer.close();
        reader.close();
      }
    } finally {
      JdbcUtils.free(rs, st, conn);
    }
  }

  static void create() throws SQLException, IOException {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
      // 2.建立连接
      conn = JdbcUtils.getConnection();
      // conn = JdbcUtilsSing.getInstance().getConnection();
      // 3.创建语句
      String sql = "insert into clob_test(big_text) values (?) ";
      ps = conn.prepareStatement(sql);
      File file = new File("src/cn/itcast/jdbc/JdbcUtils.java");
      Reader reader = new BufferedReader(new FileReader(file));

      ps.setCharacterStream(1, reader, (int) file.length());
      // ps.setString(1, x);
      // 4.执行语句
      int i = ps.executeUpdate();

      reader.close();

      System.out.println("i=" + i);
    } finally {
      JdbcUtils.free(rs, ps, conn);
    }
  }

}