blob类型字段[通俗易懂]

blob类型字段[通俗易懂]1、在mysql中,bolb是一个二进制大型对象,是一个储存大量数据的容器,例如图片,音频。2、插入blob类型数据比如使用preparedStatement,而不能使用Statment,因为blob类型数据不能使用字符串拼接。有关preparedStatement的使用请参考https://blog.csdn.net/weixin_46457946/article/details/1197812273、mysql的四种blob类型类型大小TinyBlob255byte.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1、在mysql中,bolb是一个二进制大型对象,是一个储存大量数据的容器,例如图片,音频。
2、插入blob类型数据比如使用preparedStatement,而不能使用Statment,因为blob类型数据不能使用字符串拼接。有关preparedStatement的使用请参考https://blog.csdn.net/weixin_46457946/article/details/119781227
3、mysql的四种blob类型

类型 大小
TinyBlob 255byte
Blob 65k
MediumBlob 16M
Long 4G

4、储存的文件过大,会造成数据库的性能下降。

一、Blob数据类型应用,向数据库中插入图片

 @Test
    public void testInsert() { 
   
        Connection conn=null;
        PreparedStatement ps=null;
        try { 
   
            //1、连接数据库
            conn = JDBCUtils.getConnection();
            //2、预编译sql
            String sql = "insert into customers(name,email,birth,photo) values(?,?,?,?)";
            //3、获得PreparedStatement对象
            ps = conn.prepareStatement(sql);
            ps.setObject(1, "刘备");
            ps.setObject(2, "liu@qq.com");
            ps.setObject(3, "1992-09-08");
            FileInputStream is = new FileInputStream(new File("推广004.png"));
            ps.setBlob(4, is);
            //提交
            ps.execute();
        } catch (Exception e) { 
   
            e.printStackTrace();
        } finally { 
   
            JDBCUtils.closeResouce(conn, ps);
        }
    }

Jetbrains全家桶1年46,售后保障稳定

二、从数据库中读取Blob数据

@Test
    public void testQuery(){ 
   
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        InputStream is=null;
        FileOutputStream fos=null;
        try { 
   
            //1、连接数据库
            conn = JDBCUtils.getConnection();

            //2、预编译sql
            String sql = "select id,name,email,birth,photo from customers where id = ?";

            ps = conn.prepareStatement(sql);
            ps.setInt(1, 27);

            //3、提交数据
            rs = ps.executeQuery();

            if(rs.next()){ 
   
                int id=rs.getInt("id");
                String name=rs.getString("name");
                String email=rs.getString("email");
                Date birth = rs.getDate("birth");

                Customer cus = new Customer(id,name,email,birth);
                System.out.println(cus);

                //将Blob类型以文件的方式保存在本地
                Blob photo = rs.getBlob("photo");
                is = photo.getBinaryStream();
                fos = new FileOutputStream("01.jpg");
                byte[] buffer = new byte[1024];
                int len;
                while ((len=is.read(buffer))!=-1){ 
   
                    fos.write(buffer,0,len);
                }
            }
        } catch (Exception e) { 
   
            e.printStackTrace();
        }finally { 
   
            try { 
   
                if(is != null)
                    is.close();
            } catch (IOException e) { 
   
                e.printStackTrace();
            }

            try { 
   
                if(fos != null)
                    fos.close();
            } catch (IOException e) { 
   
                e.printStackTrace();
            }
            JDBCUtils.closeResource(conn,ps,rs);
            }
        }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215916.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二叉树后序遍历的非递归实现_二叉树的后序遍历非递归详细

    二叉树后序遍历的非递归实现_二叉树的后序遍历非递归详细一、递归实现前序,序,后序遍历;对于二叉树,前面已经采用递归的方式实现的其前序,中序,后序遍历,具体请参见:http://blog.csdn.net/dai_wen/article/details/78955411那么,如何采用非递归的方式遍历树呢?下面,以实现中序遍历二叉树为主题展开:二、非递归实现中序遍历:1,结构:首先,对于中序遍历,我们知道,原则是先走到的结点后访问,后走到的结点

    2022年9月14日
    2
  • 单片机c语言程序设计试卷_stm32常见面试题

    单片机c语言程序设计试卷_stm32常见面试题c语言面试题集(单片机).c语言面试题集(单片机)1.预处理器(Preprocessor)1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSECONDS_PER_YEAR(60*60*24*365)UL:1).#define语法的基本知识(例如:不能以分号结束,括号的使用,等等)2).懂得预处理器将为你计算常数表达式的值,因…

    2022年8月26日
    5
  • 国内十大正规现货交易平台排名(2021版榜单)

    国内十大正规现货交易平台排名(2021版榜单)现货亦称实物,指可供出货、储存和制造业使用的实物商品。可供交割的现货可在近期或远期基础上换成现金,或先付货,买方在极短的期限内付款的商品的总称。期货的对称。随着互联网的出现,世界已慢慢变成地球村,建立在信息化基础上的现货电子交易走上新经济的舞台。现货电子交易(也称为大宗商品电子交易,或现货仓单交易)是以现货仓单为交易的标的物,采用计算机网络进行的集中竞价买卖,统一撮合成交,统一结算付款,价格行情实时显示的交易方式。国内不少投资者对现货交易还不是太了解,下面小编为您介绍“国内十大正规现货交易平台排名(20

    2022年6月15日
    58
  • .NET-OOP:.文件读写与XML

    .NET-OOP:.文件读写与XML
            文件读写分五个步骤:
    1.        //创建文件流
    FileStreammyFs=newFileStream(path,FileMode.CreateNew);
    2.         //创建写(读)入器
    StreamWritermySw=newStreamWriter(myFs);
    StreamReadermySf=newStreamReader(mtFs);
    3.       

    2025年9月30日
    5
  • Django之mysql表单操作

    在Django之ORM模型中总结过django下mysql表的创建操作,接下来总结mysql表记录操作,包括表记录的增、删、改、查。1.添加表记录对于表单的添加有三种方式:2.删除表记录m

    2021年12月29日
    41
  • 香港主机空间搜索引擎会不收录吗_如何让搜索引擎搜到自己的网页

    香港主机空间搜索引擎会不收录吗_如何让搜索引擎搜到自己的网页最近在Q群里发现有几个群友在叫唤,“我的网站怎么还不收录啊,是不是百度屏蔽了香港空间?”,“香港空间是不是对SEO有影响?”。经过查看他们的网站,发现他们做的是小说站,所有小说都是通过采集器采集过来的。这样的内容百度能正常收录吗?        通过亲身验证,香港主机空间本身不存在搜索引擎不收录的现象,百度搜索引擎也没有屏蔽香港ip的谬论。只要主机空间稳定、高速访问,香港和国内的空间对SEO

    2022年10月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号