【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

首先我们来看一下 BLOB格式

BLOB (binary large object)----二进制大对象,是一个可以存储二进制文件的容器。

  在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。   BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。   复习一下加一个新列的语句奥   【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 

在插入的时候遇到了问题(图片太大了 导致超出了BLOB长度)

错误如下:

【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 

 

错误原因:https://blog.csdn.net/oy538730875/article/details/84519168

【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 我新去建了一列LONGBLOB格式的列

运行成功了 yeah

【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 

在数据库中显示是这样的

【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 我们尝试取出来看看

成功取出来了!

【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询

 

 

  //查询图片 输出到新文件里面
            String sql="select PHOTO_LONG  from tablename1 where age=?";
            pstm=conn.prepareStatement(sql);
            pstm.setInt(1,34);
            rs=pstm.executeQuery();
            if(rs.next()) {
                InputStream inputStream = rs.getBinaryStream(1);
                FileOutputStream fos = new FileOutputStream("src\\copy.jpg");
                byte[] b = new byte[1024];
                int len = -1;
                while ((len = inputStream.read(b)) != -1) {
                    fos.write(b, 0, len);
                }

                fos.close();
                inputStream.close();


            }

 

 

关于IO还是有很多要补的、多写写SQL语句

JDBC课设就到这里结束了

上一篇:中软国际实习day2


下一篇:mysql 数据库连接池 和 大批量数据写入