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

      

  • 相关阅读:
    windows下忘记mysql超级管理员rootpassword的解决的方法
    LeetCode226 InvertBinaryTree Java题解
    PHP利用GD库绘图和生成验证码图片
    自己动手开发IOC容器
    智能提示(一) Solr (suggest)
    Linux系统字符集乱码问题
    Linux
    [Material Design] 教你做一个Material风格、动画的button(MaterialButton)
    codeforces#FF(div2) D DZY Loves Modification
    鼠标滚轮实现图片的缩放-------Day79
  • 原文地址:https://www.cnblogs.com/xrhou12326/p/3813445.html
Copyright © 2011-2022 走看看