java插入PDF文件流到oracle数据库,和读取数据库文件流

插入:

        File file = new File("D://b9ef5e9f2ec04dfd984fa55ae6552ee6-1.pdf");
        if (file.exists()) {
            InputStream fin = new FileInputStream(file);
            // 插入附件二进制数据
            String sql = "insert  into  表名 (ID,CS)  values('111',"
                    + "?)";
            dao.updateBinary(sql,fin);
            if (fin != null) {
                fin.close();
            }
        }
        dao.flush();

 

读取:

try {
  List<Map> dataListByFullSql = dao.getDataListByFullSql("select * from 表名 where ID='111'"); //将base64编码的字符串解码成字节数组 Blob blob = (Blob) dataListByFullSql.get(0).get("CS"); InputStream is=blob.getBinaryStream(); FileOutputStream fos = new FileOutputStream("D://AAA//b9ef5e9f2ec04dfd984fa55ae6552ee6-1.pdf"); //定义缓冲区 int length=(int)blob.length(); byte bt[] = new byte[length]; try { // 向缓冲区中 读取数据 while ((length = is.read(bt)) != -1) { // 把缓冲区的述据 写出去 fos.write(bt); } } catch (IOException ex) { } // 关闭输入流 is.close(); // 关闭输出流 fos.close(); } catch (IOException e) { e.printStackTrace(); }

 

    /**
     * 根据完整SQL语句一次新查询所有数据,非参数化查询
     * 
     */
    @SuppressWarnings("rawtypes")
    public List<Map> getDataListByFullSql(String fulSql) {
        Query query = this.getCurrentSession().createSQLQuery(fulSql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        @SuppressWarnings("unchecked")
    
        List<Map> list = query.list();
        return list;
    }

 

posted @ 2022-08-29 11:29  亦寒yihan丶  阅读(131)  评论(0)    收藏  举报