Jdbc-mysql二进制blob类型读写
2011-06-03 11:37
393 查看
package org.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; 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.InputStreamReader; import java.io.OutputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BlobTest { /** * @param args * @throws SQLException * @throws IOException */ public static void main(String[] args) throws SQLException, IOException { // TODO Auto-generated method stub //create(); read(2); } //将二进制流存储入数据库blob字段类型。 public static void create() throws SQLException, IOException{ String sql = "insert into blob_test values(id,?)"; Connection conn = null; PreparedStatement ps = null; try{ conn = JdbcUtil.getInstance().getConnection(); ps = conn.prepareStatement(sql); File file = new File("input_text_right.gif"); BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); ps.setBlob(1, in); int id = ps.executeUpdate(); System.out.println("id:"+id); in.close(); }finally{ JdbcUtil.free(null, ps, conn); } } //读取二进制流,并写入新的文件 public static void read(int id) throws SQLException, IOException{ String sql = "select big_bit from blob_test where id=? limit 1"; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try{ conn = JdbcUtil.getInstance().getConnection(); ps = conn.prepareStatement(sql); ps.setInt(1, id); rs = ps.executeQuery(); byte[] b = new byte[1024]; while(rs.next()){ InputStream in = rs.getBinaryStream(1);//InputStream是字节输入流的所有类的超类 File file = new File("left.gif"); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));//BufferedOutputStream是缓冲的输出流 for(int i=0; (i=in.read(b))>0;){//read方法接收byte数组,并将数据存储在缓冲数组b中 out.write(b);//将指定的字节写入此缓冲的输出流。 } out.close();//关闭此输出流并释放与此流有关的所有系统资源。 } }finally{ JdbcUtil.free(rs, ps, conn); } } }
相关文章推荐
- Java -- JDBC mysql读写大数据,文本 和 二进制文件
- JDBC 使用 mysql Blob类型
- JDBC读取MySQL的BLOB类型
- Java JDBC读取二进制类型数据(BLOB)
- 【Java】JDBC向MYSQL读写大文本和二进制文件
- java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
- JDBC读取MySQL的BLOB类型
- JDBC读取MySQL的BLOB类型
- java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
- MYSQL中如何用JDBC存取BLOB类型?
- JDBC读取MySQL的BLOB类型
- C语言读写 mysql blob 二进制文件
- 读取MySQL存储二进制的语音、图片(Blob类型)
- Java -- JDBC mysql读写大数据,文本 和 二进制文件
- JDBC读写Oracle10g的CLOB、BLOB
- web day17 JDBC入门,DAO模式mySQL时间类型转换,批处理
- c/vc/c++ 将mysql二进制字段(longblob类型)读出来保存成文件
- jdbc-mysql基础 java.util.sql.date与mysql中date类型相对应可以相互访问