936~939 分类数据展示功能,实现前后台代码

分类实现展示功能

  效果

 

后台代码

CategoryDao

 

1
2
3
public interface CategoryDao {
    public List<Category> findAll();//查询所有
}

CategoryDaoImpl

 

1
2
3
4
5
6
7
8
9
10
public class CategoryDaoImpl implements CategoryDao {
 
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
 
    @Override//查询所有
    public List<Category> findAll() {
        String sql = "select * from tab_category ";
        return template.query(sql,new BeanPropertyRowMapper<Category>(Category.class));
    }
}

CategoryService

 

1
2
3
4
public interface CategoryService {
 
    public List<Category> findAll();
}

CategoryServiceImpl

1
2
3
4
5
6
7
8
9
public class CategoryServiceImpl implements CategoryService {
 
    private CategoryDao categoryDao = new CategoryDaoImpl();
 
    @Override
    public List<Category> findAll() {
        return categoryDao.findAll();
    }
}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package cn.itcast.travel.service.impl;
 
import cn.itcast.travel.dao.CategoryDao;
import cn.itcast.travel.dao.impl.CategoryDaoImpl;
import cn.itcast.travel.domain.Category;
import cn.itcast.travel.service.CategoryService;
import cn.itcast.travel.util.JedisUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
 
public class CategoryServiceImpl implements CategoryService {
 
    private CategoryDao categoryDao = new CategoryDaoImpl();
 
    @Override
    public List<Category> findAll() {
        //1.从redis中查询
        //1.1获取jedis客户端
        Jedis jedis = JedisUtil.getJedis();
        //1.2可使用sortedset排序查询
        //Set<String> categorys = jedis.zrange("category", 0, -1);
        //1.3查询sortedset中的分数(cid)和值(cname)
        Set<Tuple> categorys = jedis.zrangeWithScores("category", 0, -1);
 
        List<Category> cs = null;
        //2.判断查询的集合是否为空
        if (categorys == null || categorys.size() == 0) {
 
            System.out.println("从数据库查询....");
            //3.如果为空,需要从数据库查询,在将数据存入redis
            //3.1 从数据库查询
            cs = categoryDao.findAll();
            //3.2 将集合数据存储到redis中的 category的key
            for (int i = 0; i < cs.size(); i++) {
 
                jedis.zadd("category", cs.get(i).getCid(), cs.get(i).getCname());
            }
        } else {
            System.out.println("从redis中查询.....");
 
            //4.如果不为空,将set的数据存入list
            cs = new ArrayList<Category>();
            for (Tuple tuple : categorys) {
                Category category = new Category();
                category.setCname(tuple.getElement());
                category.setCid((int)tuple.getScore());
                cs.add(category);
 
            }
        }
 
 
        return cs;
    }
}

 

 

 

CategoryServlet

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@WebServlet("/category/*")
public class CategoryServlet extends BaseServlet {
 
    private CategoryService service = new CategoryServiceImpl();
 
   //查询所有
    public void findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.调用service查询所有
        List<Category> cs = service.findAll();
        //2.序列化json返回
        /*
        ObjectMapper mapper = new ObjectMapper();
        response.setContentType("application/json;charset=utf-8");
        mapper.writeValue(response.getOutputStream(),cs);
         */
        writeValue(cs,response);
    }
}

 

 

BaseServlet也可以在UserServlet编写

1
2
3
4
5
6
7
8
9
10
11
12
//直接将传入的对象序列化为json,并且写回客户端
  public void writeValue(Object obj, HttpServletResponse response) throws IOException {
      ObjectMapper mapper = new ObjectMapper();
      response.setContentType("application/json;charset=utf-8");
      mapper.writeValue(response.getOutputStream(), obj);
  }
 
 //将传入的对象序列化为json,返回
  public String writeValueAsString(Object obj) throws JsonProcessingException {
      ObjectMapper mapper = new ObjectMapper();
      return mapper.writeValueAsString(obj);
  }
posted @   ja不会va  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示