package com.leevan.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@Component
public class RedisUtil {
@Autowired //将序列化配置类RedisConfig里面的bean注入到这里
private RedisTemplate<String, Object> redisTemplate;
/****************** common start ****************/
/**
* 指定缓存失效时间
* @param key 键
* @param time 时间(秒)
* @return
*/
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 根据key 获取过期时间
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 删除缓存
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void del(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete((Collection<String>) CollectionUtils.arrayToList(key));
}
}
}
/****************** common end ****************/
/****************** String start ****************/
/**
* 普通缓存获取
* @param key 键
* @return 值
*/
public Object get(String key) {
return key == null ? null : redisTemplate.opsForValue().get(key);
}
/**
* 普通缓存放入
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 普通缓存放入并设置时间
* @param key 键
* @param value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return true成功 false 失败
*/
public boolean set(String key, Object value, long time) {
try {
if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
} else {
set(key, value);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 递增
* @param key 键
* @param delta 要增加几(大于0)
* @return
*/
public long incr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递增因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, delta);
}
/**
* 递减
* @param key 键
* @param delta 要减少几(小于0)
* @return
*/
public long decr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递减因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, -delta);
}
/****************** String end ****************/
/****************** Map start ****************/
/**
* HashGet
* @param key 键 不能为null
* @param item 项 不能为null
* @return 值
*/
public Object hget(String key, String item) {
return redisTemplate.opsForHash().get(key, item);
}
/**
* 获取hashKey对应的所有键值
* @param key 键
* @return 对应的多个键值
*/
public Map<Object, Object> hmget(String key) {
return redisTemplate.opsForHash().entries(key);
}
/**
* HashSet
* @param key 键
* @param map 对应多个键值
* @return true 成功 false 失败
*/
public boolean hmset(String key, Map<String, Object> map) {
try {
redisTemplate.opsForHash().putAll(key, map);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* HashSet 并设置时间
* @param key 键
* @param map 对应多个键值
* @param time 时间(秒)
* @return true成功 false失败
*/
public boolean hmset(String key, Map<String, Object> map, long time) {
try {
redisTemplate.opsForHash().putAll(key, map);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 向一张hash表中放入数据,如果不存在将创建
* @param key 键
* @param item 项
* @param value 值
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value) {
try {
redisTemplate.opsForHash().put(key, item, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 向一张hash表中放入数据,如果不存在将创建
* @param key 键
* @param item 项
* @param value 值
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value, long time) {
try {
redisTemplate.opsForHash().put(key, item, value);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 删除hash表中的值
* @param key 键 不能为null
* @param item 项 可以使多个 不能为null
*/
public void hdel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item);
}
/**
* 判断hash表中是否有该项的值
* @param key 键 不能为null
* @param item 项 不能为null
* @return true 存在 false不存在
*/
public boolean hHasKey(String key, String item) {
return redisTemplate.opsForHash().hasKey(key, item);
}
/**
* hash递增 如果不存在,就会创建一个 并把新增后的值返回
* @param key 键
* @param item 项
* @param by 要增加几(大于0)
* @return
*/
public double hincr(String key, String item, long by) {
return redisTemplate.opsForHash().increment(key, item, by);
}
/**
* hash递减
* @param key 键
* @param item 项
* @param by 要减少记(小于0)
* @return
*/
public double hdecr(String key, String item, long by) {
return redisTemplate.opsForHash().increment(key, item, -by);
}
/****************** Map end ****************/
/****************** Set start ****************/
/**
* 根据key获取Set中的所有值
* @param key
没有合适的资源?快使用搜索试试~ 我知道了~
基于高频RFID自动考勤系统源码.zip
共93个文件
java:76个
xml:14个
gitignore:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 154 浏览量
2024-03-17
22:50:39
上传
评论
收藏 72KB ZIP 举报
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动考勤系统源码.zip基于高频RFID自动
资源推荐
资源详情
资源评论
收起资源包目录
基于高频RFID自动考勤系统源码.zip (93个子文件)
code_20105
pom.xml 4KB
src
test
java
com
leevan
MPTest.java 476B
RedisTest.java 767B
main
resources
mapper
ApprovalFlowDetailMapper.xml 3KB
UserMapper.xml 3KB
MenuMapper.xml 724B
UserRoleMapper.xml 520B
RoleMapper.xml 1KB
RoleMenuMapper.xml 595B
ApprovalFlow.xml 422B
AttendanceMapper.xml 3KB
application.yml 803B
java
com
leevan
configure
RedisConfig.java 2KB
WebMvcConfig.java 1KB
CorsConfig.java 1KB
Utils
JwtUtil.java 2KB
RedisUtil.java 14KB
DateUtils.java 14KB
ByteTransferUtil.java 667B
mapper
FileMapper.java 325B
RoleMenuMapper.java 309B
UserMapper.java 1KB
RFIDCardMapper.java 902B
procedureSubmitMapper.java 1KB
RoleMapper.java 547B
DictMapper.java 319B
ApprovalFlowMapper.java 815B
MenuMapper.java 648B
AttendanceRecordMapper.java 1KB
ApprovalFlowDetailMapper.java 2KB
AttendanceMapper.java 1KB
UserRoleMapper.java 703B
Request
userQueryRequest.java 864B
attendanceCountRequest.java 661B
Interceptor
UserAuthenticationIntercepter.java 4KB
controller
fileController.java 3KB
attendanceController.java 8KB
menuController.java 2KB
procedureController.java 1KB
readRfidController.java 2KB
approvalController.java 1KB
helloController.java 668B
roleController.java 2KB
userController.java 4KB
pojo
user.java 912B
approvalFlowDetail.java 970B
approvalFlow.java 812B
roleMenu.java 451B
menu.java 636B
userRole.java 482B
dict.java 463B
procedureSubmit.java 1KB
ServiceRes.java 907B
role.java 496B
approvalSubmit.java 705B
attendance.java 538B
ControllerRes.java 439B
rfidCard.java 514B
Files.java 491B
ResultCodeEnum.java 1KB
service
roleService.java 401B
roleMenuService.java 399B
userService.java 1KB
rfidCardService.java 506B
impl
userRoleServiceImpl.java 1KB
menuServiceImpl.java 4KB
attendanceServiceImpl.java 4KB
procedureServiceImpl.java 8KB
rfidCardServiceImpl.java 2KB
roleMenuServiceImpl.java 1KB
userServiceImpl.java 7KB
roleServiceImpl.java 2KB
attendanceCountServiceImpl.java 6KB
menuService.java 659B
attendanceService.java 937B
userRoleService.java 290B
procedureService.java 1KB
attendanceCountService.java 370B
vo
AskForLeaveProcessAndApprovalResultVo.java 1KB
Result.java 2KB
pageBeanVo.java 629B
userVo.java 855B
countDaysbyMonthVo.java 549B
attendanceRecordVo.java 615B
attendanceCountVo.java 465B
KeepOnAttenceApplication.java 969B
.idea
jarRepositories.xml 851B
uiDesigner.xml 9KB
misc.xml 528B
compiler.xml 706B
.gitignore 176B
encodings.xml 186B
.gitignore 32B
共 93 条
- 1
资源评论
土豆片片
- 粉丝: 1572
- 资源: 5636
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- module.py 是一个用于实现 YOLO(You Only Look Once)多目标识别的 Python 脚本
- kernel-4.19.315-1.ky10.x86-64.rpm
- 高分项目,基于Unity3D开发实现的草莓消除游戏,内含完整源码+资源+unitypackage
- ZenTaoPMS-20.1.0-zbox-amd64.tar.gz
- Toolkit for Unity Physics: Ballistics 3.2.0
- 在线书店管理系统数据库课程设计简单案例
- 自动化测试:Appium+夜神模拟器+微信
- PingFang字体集
- 高分项目,基于Unity3D开发实现的中国象棋,内含完整源码+资源
- 高分项目,基于Unity3D开发实现的unity盒子无限跑酷项目源码,内含完整源码+资源+unitypackage
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功