首页 > 代码库 > Oracle数据库插入图片和读取图片

Oracle数据库插入图片和读取图片

package com.basicSql.scroll_page;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.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.basicSql.connUtil.Conndb;public class SavePic {	public static Connection conn = null;	public static PreparedStatement pStmt = null;	/**	 * 数据库中加入图片等文件	 */	public static void InsertPic() {		String sql = "insert into teacher(id,name,photo) values(teacher_seq.nextval,?,?)";		try {			conn = Conndb.connOracle();			pStmt = conn.prepareStatement(sql);			pStmt.setString(1, "signma");			// 数据库插入图片/word/excel等			File f = new File("src/pic.jpg");			FileInputStream fis = new FileInputStream(f);			pStmt.setBinaryStream(2, fis, (int) f.length());			int n = pStmt.executeUpdate();			System.out.println(n + "条记录插入");		} catch (SQLException e) {			e.printStackTrace();		} catch (FileNotFoundException e) {			e.printStackTrace();		} finally {			Conndb.pStmtClose(pStmt);			Conndb.closeConn(conn);		}	}	/**	 * 从数据库中取出图片等文件	 */	public static void getPic() {		String sql = "select id,name,photo from teacher where id=?";		try {			conn = Conndb.connOracle();			pStmt = conn.prepareStatement(sql);			pStmt.setInt(1, 2);			ResultSet rs = pStmt.executeQuery();			if (rs.next()) {				FileOutputStream fos = new FileOutputStream(new File("abc.jpg"));				InputStream is = rs.getBinaryStream("photo");				byte[] buffer = new byte[4 * 1024];				int length = 0;				while ((length = is.read(buffer)) != -1) {					fos.write(buffer, 0, length);				}				fos.flush();				fos.close();				is.close();			}		} catch (SQLException e) {			e.printStackTrace();		} catch (FileNotFoundException e) {			e.printStackTrace();		} catch (IOException e) {			e.printStackTrace();		} finally {			Conndb.pStmtClose(pStmt);			Conndb.closeConn(conn);		}	}}