package com.hyj.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.hyj.bean.User;
import com.hyj.util.DatabaseUtil;
/**
* @Description 与数据库(PolarDB云数据库)链接,对数据库进行操作<br>
* 注意:尽可能晚地链接数据库,尽可能早地释放数据库
* @author hyjstart何永建 Email:heyongjian2333@163.com
*/
public class UserDao implements IUserDao {
private static final String SQL_INSERT = "INSERT INTO user_list(face_id,city,lasttime) VALUES(?,?,?)";
private static final String SQL_UPDATE_USER_BY_FACEID = "UPDATE user_list set username=?,description=? WHERE face_id=?";
private static final String SQL_UPDATE_COUNT_BY_FACEID = "UPDATE user_list set count=?,lasttime=? WHERE face_id=?";;
private static final String SQL_FIND_USER_BY_FACEID = "SELECT * FROM user_list WHERE face_id=?";
private int time = 60 *1000; // 每1分钟录入人脸数据,可更改
public void setTime(int time) {
this.time = time;
}
public int getTime() {
return time;
}
/** 添加新的人脸数据: 人脸标识 城市 时间
*/
@Override
public int add(User user) {
// 1.链接数据库 及预编译执行的SQL环境
Connection connection = DatabaseUtil.getConn();
PreparedStatement statement = null;
try {
statement = connection.prepareStatement(SQL_INSERT);
// 2.填充预编译的参数
statement.setString(1, user.getFace_id());
statement.setString(2, user.getCity());
statement.setLong(3, System.currentTimeMillis());
// 3.执行存储:
// int rowCount = statement.executeUpdate(); // (更新)影响的行数
return statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 4.释放链接
DatabaseUtil.close(connection, statement, null);
}
return -1;
}
/**根据face_id 看是否刷新人脸数据(刷脸次数)
*/
@Override
public User count(String face_id) {
// 1.查询信息
User user = findUserByFaceId(face_id);
// 每隔一段时间收录人脸数据(默认1分钟,可更改)
if ((System.currentTimeMillis() - user.getLastTime()) > time) {
// 修改次数
user.setCount(user.getCount() + 1);
updateCountByFaceId(face_id, user.getCount());
}
return user;
}
/**根据face_id, 修改对应人脸的姓名/备注
*/
@Override
public int updateUserByFaceId(String face_id, User user) {
Connection connection = DatabaseUtil.getConn();
PreparedStatement statement = null;
try {
statement = connection.prepareStatement(SQL_UPDATE_USER_BY_FACEID);
statement.setString(1, user.getUserName());
statement.setString(2, user.getDescription());
statement.setString(3, face_id);
return statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DatabaseUtil.close(connection, statement, null);
}
return -1;
}
@Override
public int updateCountByFaceId(String face_id, int count) {
Connection connection = DatabaseUtil.getConn();
PreparedStatement statement = null;
try {
statement = connection.prepareStatement(SQL_UPDATE_COUNT_BY_FACEID);
statement.setInt(1, count);
statement.setLong(2, System.currentTimeMillis());
statement.setString(3, face_id);
return statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DatabaseUtil.close(connection, statement, null);
}
return -1;
}
/**根据face_id查看人脸数据(所有信息)
*/
@Override
public User findUserByFaceId(String face_id) {
Connection connection = DatabaseUtil.getConn();
PreparedStatement statement = null;
ResultSet rs = null; // 1.用于"查询"
try {
statement = connection.prepareStatement(SQL_FIND_USER_BY_FACEID);
statement.setString(1, face_id);
// 2.执行查询!
rs = statement.executeQuery();
if (rs.next()) {
int id = rs.getInt("id");
String userName = rs.getString("userName");
String description = rs.getString("description");
String city = rs.getString("city");
int count = rs.getInt("count");
long lastTime = rs.getLong("lastTime");
return new User(id, face_id, userName, description, city, count, lastTime);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 3.*查询*:释放链接!
DatabaseUtil.close(connection, statement, rs);
}
return null;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于百度人脸识别API的人脸识别信息收集小程序,使用 PolarDB 云数据库、云服务器搭建开发; 该小程序通过特别的人脸标识码来标记人脸,微信调用gps记录地理位置信息,并记录用户相关信息。 已有体验版小程序已通过微信小程序审核 分为前端和后端以及图例
资源推荐
资源详情
资源评论

















收起资源包目录
















































































共 51 条
- 1
资源评论

HappyGirl快乐女孩
- 粉丝: 1w+
- 资源: 613

下载权益

C知道特权

VIP文章

课程特权

开通VIP

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
