使用jdbc技术,在数据库中存储大数据对象(使用字节IO流读取图片等给blob等二进制类型数据赋值)

           在MySQL中,BLOB是一种数据类型,代表二进制大对象(Binary Large Object),可以存储大量的二进制数据,如图像、声音、视频等。BLOB类型的数据在存储和检索时会以二进制方式进行处理,而不是字符方式。因此,BLOB类型的数据可以存储任何类型的数据,包括非文本数据和Unicode字符。

           mediumblob 是MySQL中的一种数据类型,它可以用来存储二进制数据,数据大小为16MB。也就是说,如果需要在MySQL中存储大量二进制数据(如图像、音频、视频等文件),可以选择mediumblob数据类型来进行存储。

  • 实际开发中用 mediumblob,但是都很少用,一般多媒体资源用云服务器
package com.csdn.jdbc;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
//演示数据库保存大数据对象(Blob,Text)
public class BlobText {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        Class.forName("com.mysql.cj.jdbc.Driver");

        Connection conn = DriverManager.getConnection("jdbc:mysql:///fruitdb", "root", "123456");
        String sql = "insert into t_user values(0,?,?)";
        PreparedStatement psmt = conn.prepareStatement(sql);
        //填充参数
        psmt.setString(1, "小明");
        InputStream is = BlobText.class.getClassLoader().getResourceAsStream("扭扭.png");
        psmt.setObject(2, is);
        
        int count = psmt.executeUpdate();
        System.out.println(count > 0 ? "保存成功" : "保存失败");

    }
}

你可能感兴趣的:(#,JDBC,数据库,jdbc,反射,java,IO流)