MySQL 如何使用Java程序将图像插入到数据库中

MySQL 如何使用Java程序将图像插入到数据库中

通常使用 blob 类型在 MySQL 数据库中保存图像。因此,请确保您创建了一个具有 blob 数据类型的表,其描述如下:

+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name | varchar(255) | YES | | NULL | |
| image | blob | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+

要将图像插入到 MySQL 数据库中,请执行以下步骤:

阅读更多:MySQL 教程

第一步:连接到数据库

您可以使用 DriverManager 类的 getConnection() 方法连接到数据库。 通过将 MySQL URL 传递为参数(其中 sampleDB 是数据库名称)、用户名和密码来连接到 MySQL 数据库。

String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

第二步:创建一个预处理语句

使用 Connection 接口的 prepareStatement() 方法创建一个 PreparedStatement 对象。将插入查询(具有占位符)作为参数传递给此方法。

PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");

第三步:设置占位符的值

使用 PreparedStatement 接口的 setter 方法为占位符设置值。根据列的数据类型选择方法。例如,如果列是 VARCHAR 类型,使用 setString() 方法,如果是 INT 类型,可以使用 setInt() 方法。

如果是 Blob 类型,则可以使用 setBinaryStream() 或 setBlob() 方法设置值。将代表参数索引的整数变量和 InputStream 类的对象作为参数传递给这些方法。

pstmt.setString(1, "sample image");
//插入 Blob 类型
InputStream in = new FileInputStream("E:\images\cat.jpg");
pstmt.setBlob(2, in);

第四步:执行语句

使用 PreparedStatement 接口的 execute() 方法执行上述创建的 PreparedStatement 对象。

示例

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertImageToMySqlDB {
    public static void main(String args[]) throws Exception{
        //注册驱动程序
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //获取连接
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
        System.out.println("连接已建立......");
        PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?,?)");
        pstmt.setString(1, "sample image");
        //插入 Blob 类型
        InputStream in = new FileInputStream("E:\images\cat.jpg");
        pstmt.setBlob(2, in);
        //执行语句
        pstmt.execute();
        System.out.println("记录已插入......");
    }
}

输出

连接已建立......
记录已插入......

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程