Java 在JDBC中使用BLOB作为键检索数据库中的数据

Java 在JDBC中使用BLOB作为键检索数据库中的数据,java,jdbc,fingerprint,Java,Jdbc,Fingerprint,我正在使用指纹扫描仪将指纹模板存储在数据库中的blob数据类型中。我成功了。但是,我想使用blob作为说明符来检索特定的行。我想要这样的东西: SELECT * FROM bio_tbl WHERE blob_type = ?; String sql = "SELECT * FROM pictures where blob_type = ?"; PreparedStatement pstmt= connection.prepareStatement(sql); // prep

我正在使用指纹扫描仪将指纹模板存储在数据库中的blob数据类型中。我成功了。但是,我想使用blob作为说明符来检索特定的行。我想要这样的东西:

SELECT * FROM bio_tbl WHERE blob_type = ?;
    String sql = "SELECT * FROM pictures where blob_type = ?";
    PreparedStatement pstmt= connection.prepareStatement(sql);

// prepare small binary stream
    File smallFile = new File("yourFileName.jpg");
    int smallFileLength = (int) smallFile.length();
    InputStream smallStream = (InputStream) new FileInputStream(smallFile);
    pstmt.setBinaryStream(1, smallStream, smallFileLength);
    ResultSet rs = pstmt.executeQuery();

那我该怎么做呢?

嗨,你可以试试这样的东西:

SELECT * FROM bio_tbl WHERE blob_type = ?;
    String sql = "SELECT * FROM pictures where blob_type = ?";
    PreparedStatement pstmt= connection.prepareStatement(sql);

// prepare small binary stream
    File smallFile = new File("yourFileName.jpg");
    int smallFileLength = (int) smallFile.length();
    InputStream smallStream = (InputStream) new FileInputStream(smallFile);
    pstmt.setBinaryStream(1, smallStream, smallFileLength);
    ResultSet rs = pstmt.executeQuery();

这仍然是在db中存储和检索二进制对象的一种非常复杂的方法。您应该考虑其他存储机制

先生,我的问题是检索而不是存储。不过,我会尝试你的答案来检索我需要的信息。你能建议在我的数据库中存储指纹模板的方法吗?谢谢你能描述一下这个过程吗?例如第一步。该设备扫描用户的指纹,并将其作为blob存储到DB。第二步。设备读取现有用户的指纹,并尝试从数据库中检索指纹,以便检查是否相等?还是相似?