我正在开发一个用Java语言设计的生物识别考勤系统,用于digitalPersona设备的MySQL。但是在指纹验证期间,每当它显示不同的数据时,我都会从数据库中检索指纹数据(即BLOB)。最终结果显示“未验证”。以下是我为验证写的代码。指纹验证在DigitalPersona中不适用于Java,MySQL
String query = "select * from employee";
try {
res = conn.getRecords(query, con);
while(res.next()) {
**System.out.println("Name : "+res.getString(1));**
Blob data1 =res.getBlob("fingerprint");
**System.out.println("Fingerprint data from DB: "+data1);**
int blobLengh=(int)data1.length();
byte data[]=data1.getBytes(1, blobLengh);
DPFPTemplate t = DPFPGlobal.getTemplateFactory().createTemplate();
t.deserialize(data);
//setTemplate(t);
System.out.println("from DB: "+t);
System.out.println("Current Finger: "+features);
DPFPVerificationResult result;
result = verificator.verify(features,t);
updateStatus(result.getFalseAcceptRate());
//System.out.println(result.isVerified());
if (result.isVerified()){
System.out.println("The fingerprint was VERIFIED.");
System.exit(0);
}
else{
System.out.println("The fingerprint was NOT VERIFIED.");
}
}
} catch (SQLException ex) {
//Logger.getLogger(AlreadyRegisteredDetails.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
每次我扫描了我的手指输出来像使用
指纹识别器,扫描指纹。
名称:从数据库阿马尔
指纹数据:[B @ 872ebe
名称:从数据库阿玛尔
指纹数据:[B @ f029f6
名称:阿玛尔
来自数据库的指纹数据:[B @ 1da6b61
名称:从数据库阿马尔
指纹数据:[B @ bc2ca4
名称:阿玛尔从数据库
指纹数据:[B @ 6d7f85
可能的重复[如何打印我的Java对象而不会得到“SomeType @ 2f92e0f4”?](http://stackoverflow.com/questions/29140402/how-do-i-print-my-java-object- without-getting-sometype2f92e0f4) –
显示你的'getRecords'方法。 – zulq
public ResultSet getRecords(String query,Connection conn)throws SQLException { \t \t this.conn = conn; \t \t try { stmt = conn.createStatement(); result = stmt.executeQuery(query); (例外se){ System.out.println(“未找到Sql连接”); se.printStackTrace(); }
返回结果; } –