- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个简单的java项目,我正在扫描用户的指纹,将其转换为字符串,使用文本将其存储在数据库(MySQL)中,从数据库检索它们并将其与新的指纹进行比较以执行匹配操作。问题是对于同一个人来说,它无法识别指纹数据。为了捕获手指数据,我使用 Mantra 的 MFS100 指纹设备!!!这是代码快照:
byte[] ISOTemplate = null;
/* Finger data contains
* byte[] ISOTemplate;
*/
FingerData data = new FingerData();
/*It will now scan fingerprints from device*/
int ret = mfs100.AutoCapture(data,timeout,false,false);
//Initializing local ISOTemplate
ISOTemplate = new byte[data.ISOTemplate().length];
System.arraycopy(data.ISOTemplate(), 0, ISOTemplate, 0, data.ISOTemplate().length);
//Storing it in database
String str = new String(ISOTemplate);
Connection con = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost:3306/db","user","pass");
PreparedStatement ps = con.prepareStatement("update datatable set fingerscan = ? where empID like '123'");
ps.setString(1,str);
ps.executeUpdate();
到这里为止,一切都工作正常。问题出在这里:
PreparedStatement ps = con.prepareStatement("select fingerscan from datatable where empID like '123'");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String tmp = rs.getString("fingerscan");
ISOTemplate = tmp.getBytes();
}
//captures new data from user
int ret = mfs100.AutoCapture(data, timeout, false, false);
if(ret == 0){
int score = 0;
score = mfs100.MatchISO(data.ISOTemplate(), ISOTemplate);
System.out.println("Score:"+score);
if(score > 14000){
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Success:"+score, ButtonType.OK);
alert.show();
}else if (score >= 0 && score < 14000) {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Failure:"+score, ButtonType.OK);
alert.show();
}
}
根据设备规范,匹配分数应该大于14000。但在我的例子中,分数只有1300左右。我已经尝试过:
How to save "Finger Print" in database
但分数仍然低于 14000。
我知道问题是当我将手指数据存储在 mysql 数据库中时,数据变得毫无用处。所以请建议我一些将手指数据存储到数据库中的方法。请帮助我提高比赛分数。
最佳答案
不要将字节数组转换为字符串。
在 MySQL 中
使用 BLOB 创建列类型
保存模板
在Java中使用setBytes PreparedStatement方法
PreparedStatement ps = con.prepareStatement("update datatable set fingerscan = ? where empID like '123'");
ps.setBytes(1,ISOTemplate);
ps.executeUpdate();
获取模板
在Java中使用getBytes ResultSet方法
PreparedStatement ps = con.prepareStatement("select fingerscan from
datatable where empID like '123'");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String tmp = rs.getBytes(1);
ISOTemplate = tmp.getBytes();
}
关于java - 手指数据匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577567/
我用 cocos2d 制作了我的第一个应用程序,所以我在这里很新 我的第一个问题: 我不会让物体(船)跟随我的手指。 -(void) ccTouchMoved:(UITouch *)touch wit
如果某人将右手压在扫描仪的玻璃上进行扫描,结果将如下所示: (没有橙色和白色注释)。我们如何确定某人的 2D:4D ratio从他们的手的图像? 最佳答案 您已经标记了这个很棒的 opencv - 我
我的 View Controller 中有几个 UIScrollView。我想覆盖一个通过 UIPanGestureRecognizer 捕获 2 根手指滑动的 View ,它不会记录 UIScrol
现在这真是令人困惑...在不离开页面的情况下更新 mysql 数据库...我有 3 位代码。 head 标签中的 javascript、body 中的操作按钮以及要在另一个页面上执行的代码。以下是三个
我有这段代码是从 Style clipboard in flutter 得到的 showMenu( context: context, // TODO: Positio
我是一名优秀的程序员,十分优秀!