zoukankan      html  css  js  c++  java
  • Blob存储实践

    /**
     * @author Kevin 2018-1-16
     * 
     * Blob(二进制大对象)对象的存储 jdbc实现。
     *
     */
    public class BlobObjectDemo {
    
        public static void main(String[] args) throws IOException {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
            } catch (ClassNotFoundException e1) {
                e1.printStackTrace();
            }
            Connection conn = null;
            Statement state = null;
            ResultSet rs = null;
    
            try {
                conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "demo", "demo");
    
                state = conn.createStatement();
                String id = UUID.randomUUID().toString().replace("-", "");
                String insertSql = "insert into test_blob values('"+id+"',empty_blob())";
                state.execute(insertSql);
    
                File f = new File("D:\壁纸\12 (1).jpg");
                FileInputStream in = new FileInputStream(f);
    
                String sql = "select * from test_blob where id='"+id+"' for update";
    
                rs = state.executeQuery(sql);
    
                while(rs.next()){
                    Blob b = rs.getBlob(2);
                    OutputStream out = b.setBinaryStream(0);
                    byte[] bytes = new byte[in.available()];
                    int len = 0;
                    while((len = in.read(bytes)) != -1){
                        out.write(bytes, 0, len);
                    }
                }
    
            } catch (SQLException e) {
                System.err.println("出错回滚");
                e.printStackTrace();
                try {
                    conn.rollback();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            } finally{
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }
  • 相关阅读:
    SQL每日一题(20200512)
    SQL每日一题(20200506)
    SQL每日一题(20200509)
    sql每日一题(20200423)
    Oracle内存全面分析
    dbms_output.put与put_line
    oracle xml操作
    超级强大的破解极验滑动验证码--讲解非常详细
    python开发---目录
    Flask大全
  • 原文地址:https://www.cnblogs.com/Kevin-1992/p/12608392.html
Copyright © 2011-2022 走看看