package com.yuyang.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.serializer.RedisSerializer;
import com.yuyang.dao.UserDao;
import com.yuyang.po.User;
import com.yuyang.util.AbstractBaseRedisDao;
public class UserDaoImpl extends AbstractBaseRedisDao<String,User> implements UserDao {
/**
* 新增
* @param user
* @return
*/
public boolean add(final User user) {
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer =redisTemplate.getStringSerializer();
byte[] key = serializer.serialize(user.getId());
byte[] name = serializer.serialize(user.getName());
return connection.setNX(key, name);
}
});
return result;
}
/**
* 批量新增 使用pipeline方式
*@param list
*@return
*/
public boolean add(final List<User> list) {
org.springframework.util.Assert.notEmpty(list);
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
for (User user : list) {
byte[] key = serializer.serialize(user.getId());
byte[] name = serializer.serialize(user.getName());
connection.setNX(key, name);
}
return true;
}
}, false, true);
return result;
}
/**
* 删除
* <br>------------------------------<br>
* @param key
*/
public void delete(String key) {
List<String> list = new ArrayList<String>();
list.add(key);
delete(list);
}
/**
* 删除多个
* <br>------------------------------<br>
* @param keys
*/
public void delete(List<String> keys) {
redisTemplate.delete(keys);
}
/**
* 修改
* <br>------------------------------<br>
* @param user
* @return
*/
public boolean update(final User user) {
String key = user.getId();
if (get(key) == null) {
throw new NullPointerException("数据行不存在, key = " + key);
}
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
byte[] key = serializer.serialize(user.getId());
byte[] name = serializer.serialize(user.getName());
connection.set(key, name);
return true;
}
});
return result;
}
/**
* 通过key获取
* <br>------------------------------<br>
* @param keyId
* @return
*/
public User get(final String keyId) {
User result = redisTemplate.execute(new RedisCallback<User>() {
public User doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
byte[] key = serializer.serialize(keyId);
byte[] value = connection.get(key);
if (value == null) {
return null;
}
String name = serializer.deserialize(value);
return new User(keyId, name, null);
}
});
return result;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
springmvc集成redis的Demo基于maven(内有redis)
共41个文件
class:10个
java:6个
xml:6个
4星 · 超过85%的资源 需积分: 26 156 下载量 49 浏览量
2017-05-12
16:01:39
上传
评论 1
收藏 649KB ZIP 举报
温馨提示
该项目使用spring4.2和redis集成的一个小demo,其中包含32位和64位的redis客户端和服务器端,项目导入即可运行(需要maven环境)
资源推荐
资源详情
资源评论
收起资源包目录
MavenRedis.zip (41个子文件)
MavenRedis
pom.xml 3KB
target
test-classes
m2e-jee
web-resources
META-INF
maven
MavenRedis
MavenRedis
pom.xml 3KB
pom.properties 238B
MANIFEST.MF 114B
classes
beans.xml 2KB
redis.properties 150B
log4j.properties 184B
com
yuyang
dao
UserDao.class 439B
impl
UserDaoImpl$2.class 2KB
UserDaoImpl.class 3KB
UserDaoImpl$4.class 2KB
UserDaoImpl$3.class 2KB
UserDaoImpl$1.class 2KB
po
User.class 1KB
controller
UserController.class 1KB
util
AbstractBaseRedisDao.class 1KB
libo
test
Main.class 383B
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 402B
org.eclipse.core.resources.prefs 191B
org.eclipse.wst.common.component 672B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 530B
org.eclipse.jdt.core.prefs 430B
src
test
resources
java
main
webapp
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 2KB
js
jquery-1.8.3.min.js 91KB
index.jsp 1KB
resources
beans.xml 2KB
redis.properties 150B
log4j.properties 184B
java
com
yuyang
dao
UserDao.java 859B
impl
UserDaoImpl.java 4KB
po
User.java 755B
controller
UserController.java 592B
util
AbstractBaseRedisDao.java 374B
libo
test
Main.java 101B
redis-2.4.5-win32-win64.zip 588KB
.project 1KB
.classpath 1KB
build
classes
共 41 条
- 1
资源评论
- 大荷-2017-11-20可以用,就是没有集成mybatis之类的框架,没有数据库
- RollBack20102017-06-09下载了,看看效果如何
- jingjing0902012017-08-22可以用,多谢了...........
- 喧喧闹闹2018-01-22很不错,正在学习redis
yy251066394
- 粉丝: 17
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ocr模型ch-ppocr-mobile-v2.0-cls-infer
- 计算两个地点之间的最短路线距离.php
- JavaWeb-学习笔记
- 一键安装docker环境:docker、docker-compose
- 使Unity开发的游戏支持热更新的解决方案
- 信息办公简易java开源订销管理系统-javainfo.zip
- 新闻文章NTsky新闻发布(提供JavaBean)v1.0-ntskynewsv1.0javabean.zip
- 搜索链接java(结合lucene)版的公交搜索系统-javaso.zip
- 毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip
- 其他类别MeyboMail Web(Java)开源简化-meybomailweb.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功