首页>代码>Spring MVC+Freemarker+Bootstrap整合实现spring-data-redis增删改查的入门学习实例>/springmvc_redis_freemarker_bootstrap_demo/src/main/java/com/zuidaima/controller/UserController.java
package com.zuidaima.controller; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.UUID; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations.TypedTuple; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.zuidaima.module.User; @Controller @RequestMapping("user") public class UserController { @Autowired public RedisTemplate<String, String> redisTemplate; public ZSetOperations<String, String> zsetOps; public HashOperations<String, String, Object> zhashOps; public static final String REDIS_KEY_USER_IDS = "user_ids"; public static final String REDIS_KEY_USER = "user_%s"; @PostConstruct public void init() { zsetOps = redisTemplate.opsForZSet(); zhashOps = redisTemplate.opsForHash(); } @RequestMapping(value = "", method = RequestMethod.GET) public String index(@RequestParam(value = "p", required = false) Integer p, ModelMap model) throws UnsupportedEncodingException { if (p == null || p <= 0) { p = 1; } int total = zsetOps.zCard(REDIS_KEY_USER_IDS).intValue(); int pageSize = 5; int pageTotal = total / pageSize + (total % pageSize > 0 ? 1 : 0); if (pageTotal > 0 && p > pageTotal) { p = pageTotal; } int start = (p - 1) * pageSize; int end = p * pageSize - 1; // 按创建时间倒叙排序 Set<TypedTuple<String>> _ids = zsetOps.reverseRangeWithScores( REDIS_KEY_USER_IDS, start, end); List<User> users = new ArrayList<User>(); Iterator<TypedTuple<String>> iterator = _ids.iterator(); while (iterator.hasNext()) { TypedTuple<String> _id = iterator.next(); String id = _id.getValue(); String userKey = String.format(REDIS_KEY_USER, id); String createTime = zhashOps.get(userKey, User.PRO_CREATETIME) .toString(); String name = new String(zhashOps.get(userKey, User.PRO_NAME) .toString().getBytes("iso8859-1"), "utf-8"); User user = new User(); user.setCreateTime(createTime); user.setName(name); user.setId(id); users.add(user); } model.put("users", users); model.put("total", total); model.put("p", p); model.put("page_total", pageTotal); return "user/index"; } @RequestMapping(value = "create", method = RequestMethod.GET) public void create(ModelMap model) { User user = new User(); model.put("user", user); } @RequestMapping(value = "create", method = RequestMethod.POST) public String create(@ModelAttribute("user") User user) { UUID uuid = UUID.randomUUID(); String id = uuid.toString().replaceAll("\\-", ""); user.setId(id); Date now = new Date(); user.setCreateTime(now.toLocaleString()); String userKey = String.format(REDIS_KEY_USER, id); zhashOps.put(userKey, User.PRO_ID, id); zhashOps.put(userKey, User.PRO_NAME, user.getName()); zhashOps.put(userKey, User.PRO_CREATETIME, user.getCreateTime()); zsetOps.add(REDIS_KEY_USER_IDS, id + "", now.getTime()); return "redirect:/user.htm"; } @RequestMapping(value = "delete", method = RequestMethod.GET) public String delete(@RequestParam(value = "id", required = false) String id) { String userKey = String.format(REDIS_KEY_USER, id + ""); redisTemplate.delete(userKey); zsetOps.remove(REDIS_KEY_USER_IDS, id); return "redirect:/user.htm"; } }
最近下载更多
1335203 LV10
2022年7月1日
1690356080 LV37
2021年5月28日
zhaoming200677 LV12
2021年1月20日
泪染珍珠 LV9
2020年9月8日
蛇头凌志 LV8
2020年8月15日
weixiaoderen123 LV2
2020年3月8日
skipple3 LV39
2020年2月26日
feiying985 LV11
2019年10月19日
build138 LV20
2019年6月16日
13476235384 LV16
2019年6月5日