如果我的数据库中没有要上传的图片怎么办?
What if I don't have any image to upload in mydatabase?
当我没有要上传的图像时,我希望数据库中的 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());
你基本上有两种选择,一种是不提及并为图像设置列。这也最小化了语句并允许使用数据库默认值。
另一种选择是将列绑定显式设置为 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 都可以。
当我没有要上传的图像时,我希望数据库中的 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());
你基本上有两种选择,一种是不提及并为图像设置列。这也最小化了语句并允许使用数据库默认值。
另一种选择是将列绑定显式设置为 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 都可以。