前篇文章介绍了redis的安装,这里介绍一个微型项目,以供初学者深入理解nosql与sql,即关系型数据库与非关系型数据库各自的存在价值。
文末附上github仓库地址。
首先列出整个项目的文件结构:项目用到了,tomcat,mysql,redis。
项目的第一步:创建项目
第二步,JDBC工具类,连接数据库,编写相应的函数;
第三步,写servlet函数:
public class ProvinceServieImpl implements ProvinceService {
// 声明dao:
private ProvinceDao dao = new ProvinceDaoImpl();
@Override
public List<Province> findALL() {
return dao.findALL();
}
// 使用redis缓存:
@Override
public String findAllJson() {
// 先从redis中查询数据:
Jedis jedis = JedisPoolUtils.getJedis();
String province_json = jedis.get("province");
//2判断 province_json 数据是否为null
if(province_json == null || province_json.length() == 0){
//redis中没有数据
System.out.println("redis中没数据,查询数据库...");
//2.1从数据中查询
List<Province> ps = dao.findALL();
//2.2将list序列化为json
ObjectMapper mapper = new ObjectMapper();
try {
province_json = mapper.writeValueAsString(ps);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
//2.3 将json数据存入redis
jedis.set("province",province_json);
//归还连接
jedis.close();
}else{
System.out.println("redis中有数据,查询缓存...");
}
return province_json;
}
}
最后,写html,实现前端功能:
public class ProvinceServieImpl implements ProvinceService {
// 声明dao:
private ProvinceDao dao = new ProvinceDaoImpl();
@Override
public List<Province> findALL() {
return dao.findALL();
}
// 使用redis缓存:
@Override
public String findAllJson() {
// 先从redis中查询数据:
Jedis jedis = JedisPoolUtils.getJedis();
String province_json = jedis.get("province");
//2判断 province_json 数据是否为null
if(province_json == null || province_json.length() == 0){
//redis中没有数据
System.out.println("redis中没数据,查询数据库...");
//2.1从数据中查询
List<Province> ps = dao.findALL();
//2.2将list序列化为json
ObjectMapper mapper = new ObjectMapper();
try {
province_json = mapper.writeValueAsString(ps);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
//2.3 将json数据存入redis
jedis.set("province",province_json);
//归还连接
jedis.close();
}else{
System.out.println("redis中有数据,查询缓存...");
}
return province_json;
}
}
喜欢的可以git star 一个呀。https://github.com/Jesselinux/Java_Web
完结。
本文分享自 MiningAlgorithms 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!