如果我的数据库中没有要上传的图片怎么办?

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 都可以。