gpt4 book ai didi

java - 如何在 Java 中将字节数组存储到 SQL Server varbinary(MAX) 字段中?

转载 作者:行者123 更新时间:2023-12-02 01:38:45 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,它以字节数组的形式接收图像,我想将其保存在 SQL Server 数据库的 varbinary(MAX) 字段中。

我正在使用 jtds 并尝试运行:

Statement statement = dbConnection.createStatement();
ResultSet result = statement.executeQuery(
"INSERT INTO TB_IMAGE (ID, IMAGE) VALUES (" + image.getId() + "," + image.getImage() + ")")

我能够执行查询,但它抛出以下错误:

java.sql.SQLException: Invalid SQL statement or JDBC escape, terminating ']' not found.

然后我尝试了:

String query = ("INSERT INTO TB_IMAGE (ID, IMAGE) VALUES (" + image.getId() + ", ?)");
PreparedStatement preparedStatement = dbConnection.prepareStatement(query);
preparedStatement.setBinaryStream(1, image.getImage());

但这需要 java.io.InputStream 并且代码无法编译。

作为引用,这是我的 Image 类:

public class Image {
private int Id;
private byte[] Image;

public Image (int id) { this.Id = id; }

public int getId() { return Id; }
public void setId(int id) { Id = id; }

public byte[] getImage() { return Image; }
public void setImage(byte[] image) { Image = image; }
}

如何将图像(一个 byte[])保存在 varbinary(MAX) 字段内?

最佳答案

将字节数组转换为十六进制字符串,并在 SQL 中提供不带引号的十六进制字符串。像这样:

insert into tb_image(id, image) values(100, 0xaabbccdd11223344)

关于java - 如何在 Java 中将字节数组存储到 SQL Server varbinary(MAX) 字段中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57501781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com