zoukankan      html  css  js  c++  java
  • 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);
    		}
    	}
    }
    

      

  • 相关阅读:
    hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
    cf1114D 区间dp基础
    poj2411 状态压缩-铺地板题型-轮廓线解法(最优)
    poj3254 炮兵阵地弱化版,记数类dp
    poj2441状态压缩dp基础
    zoj3471 状态压缩dp基础
    北极通讯网络(最小生成树)
    黑暗城堡(生成树)
    关押罪犯(并查集)
    搭配购买(并查集+0/1背包)
  • 原文地址:https://www.cnblogs.com/xrhou12326/p/3813445.html
Copyright © 2011-2022 走看看