当我没有任何要上传的图像时,我希望数据库中的 Blob 字段为 NULL。 我正在使用 JAVA - 软件 Netbeans。 我的数据库:MySQL
这是我的代码:
String s; //The path of the image
InputStream is = new FileInputStream(new File(s));
preparedStmt.setBinaryStream(24,is,(int)s.length());
最佳答案
您基本上有两种选择,一种是不提及并设置图像的列。这也最大限度地减少了语句并允许使用数据库默认值。
另一个选项是显式地将列绑定(bind)设置为 null,如下所示:
File f = new File(...);
If (f.exists()) {
try (InputStream is = new FileInputStream(f);) {
preparedStmt.setBinaryStream(24,is,f.length());
}
} else
preparedStmt.setNull(24, java.sql.Types.BLOB);
该类型有点棘手,有些驱动程序会忽略它或接受较宽的范围,有些则很挑剔。例如,PostgreSQL 不喜欢 bytea
列上的 BLOB。我认为对于 MySQL,BLOB 甚至 VARCHAR 都可以。
关于java - 如果我的数据库中没有任何要上传的图像怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54382500/