![](/img/trans.png)
[英]JAVA - SQL server insert string value into varbinary(max) data type
[英]How to store a byte array into a SQL Server varbinary(MAX) field in Java?
我有一个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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.