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

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

时间:2022-08-29 11:34:30浏览次数:59  
标签:文件 java 数据库 dao list length blob new fin

插入:

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

 

标签:文件,java,数据库,dao,list,length,blob,new,fin
From: https://www.cnblogs.com/yyihan/p/16635327.html

相关文章

  • go语言文件处理-02
    go语言zip归档文件的读写操作Go语言的标准库提供了对几种压缩格式的支持,其中包括gzip,因此Go程序可以无缝地读写.gz扩展名的gzip压缩文件或非.gz扩展名的非压缩文......
  • 图数据库入门教程(十)北京地铁图数据库模型
    数据导入根据北京地铁官网的数据,构建北京地铁线路图图数据库数据网址:https://www.bjsubway.com/station/zjgls/#这是我构件好的北京地铁graphml文件,可以通过gdotv直接......
  • python|使用 xlrd 读取 .xlsx 文件失败,改用openpyxl读取
    参考链接https://blog.csdn.net/qq_51870267/article/details/121599189解决方案:使用openpyxl而不是xlrd打开.xlsx文件。在使用pandas读取.xlsx文件时指定open......
  • 金融信创局面已打开,如何建设国产化文件传输平台?
    自2018年国际局势变化、美国陆续出台对国内科技企业的制裁政策以来,科技自立自强的重要性被提到前所未有的高度,成为国家发展战略,“信创”也由此应运而生。信创产业,即信息技......
  • vue大文件分片上传插件
    ​文件夹数据库处理逻辑 public class DbFolder{    JSONObjectroot;       public DbFolder()    {        this.root= new J......
  • 解析OCC几何体(TopoDS_Shape)生成自定义off文件(转)
    voidParseTopoDSShapeToOff(constTopoDS_Shape&aShape){//0计算顶点和顶点索引//std::vector<osg::Vec3d>vertexArray;BRepMesh_IncrementalMesh(aSh......
  • qt 文件拖拽
    将某类型文件拖拽到qt窗口并执行相应动作。这里以播放某些文件为例。类继承自QWidget,重写函数:1voiddragEnterEvent(QDragEnterEvent*event)override;2vo......
  • 图数据库入门教程(五)关系查询
    涉及的语法,关于语法更多的使用方式参考官方文档outEoutinEinotherVbothEbothsimplePath先贴上上一章节创建的样例数据1.outE(label)g.V().has('person','n......
  • 图数据库入门教程(六)复杂关系查询
    涉及的语法,关于语法更多的使用方式参考官方文档aggregatewherewithoutgroupgroupCountordercapunfoldlocal可能认识的人查询可能认识的人g.V().has('person......
  • 图数据库入门教程(七)结果处理
    1.count()统计当前结果的数量//1.查询所有节点数量g.V().count()//2.查询label是person的节点数量g.V().hasLabe('person').count()//3.查询张三好友的数量g.V(......