Oracle 数据库中批量读取图片

来源:互联网 发布:二维旋转矩阵的推导 编辑:程序博客网 时间:2024/06/16 18:19
import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.sql.Blob;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Tpzc {private int count = 0;public static void main(String[] args) {Tpzc t = new Tpzc();t.zc();}/** * 获取连接 * @return */public Connection getConnection(){Connection conn = null;try{//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//String sourceURL = "jdbc:odbc:ORDB:@URL:DBNAME";Class.forName("oracle.jdbc.driver.OracleDriver");     String sourceURL = "jdbc:oracle:thin:@url:port:database";        String user = "username";        String password = "password";        conn = DriverManager.getConnection(sourceURL, user, password);}catch (Exception e) {e.printStackTrace();}return conn;}public void releaseConnection(Connection conn){if(conn==null)return;else{try{conn.close();}catch (Exception e) {e.printStackTrace();}}}/** * 从数据库中读数据 */public void zc(){Connection conn = getConnection();Statement stm = null;ResultSet rs = null;try{String sql = "select BH , MC, picture FROM table_name order by BH";stm = conn.createStatement();rs = stm.executeQuery(sql);while(rs.next()){String bh = rs.getString(1);String name = rs.getString(2);oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob(3);fileOperate(bh, name , blob);}}catch (Exception e) {// TODO: handle exception}finally{System.out.println("恭喜你:共有 "+count+" 条数据全部导出!");releaseConnection(conn);}}/** * 将读出的数据转出图片 * @param bh * @param name * @param blob * @throws SQLException */public void fileOperate(String bh ,String name ,Blob blob) throws SQLException{if((int)blob.length()==0){return;}String path = "e:/images/";File file = new File(path+bh+".png");if(file.exists())return;try{InputStream is = blob.getBinaryStream();FileOutputStream fo = new FileOutputStream(file);int len ;byte[] buffer = new byte[1024];while((len = is.read(buffer))!=-1){fo.write(buffer, 0, len);}fo.close();is.close();count++;System.out.println("---"+name+ "---"+bh+".png------导出成功");}catch (Exception e) {System.out.println("I/O Excption");e.printStackTrace();}}}

0 0
原创粉丝点击