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();
}
}
}