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

		}

	}

}

  

你可能感兴趣的:(oracle数据库)