技术编程|SpringBoot怎么整合MongoDB?( 五 )
map=maps.get(0);Set
strings=map.keySet();System.out.println(strings);Blogblog=newBlog();blog.setId(Integer.valueOf(map.get("id").toString()));blog.setTitle((String)map.get("title"));blog.setAuthor((String)map.get("author"));blog.setCreate_time((Date)map.get("create_time"));blog.setViews((Integer)map.get("views"));mongoTemplate.insert(blog);one=blog;System.out.println("mysql拿的数据存到缓存中啦!");}returnone;}}
这里面的逻辑跟这张图一致
@Service 表示该类为一个service(事务处理) , 可以被注入到其他对象(Spring帮你管理) 。
@Autowired表示要注入对象的意思 。而MongoTemplate 就是已经封装好在Spring中操作MongoDB的对象 。测试
启动SpringBoot启动类 , 访问8080端口
第一次我们查询缓存中有的数据 , 第二次查询缓存中不存在的数据 , 可以看到第一次直接返回缓存中的结果 , 而第二次是先从数据库中拿 , 然后将数据保存到缓存中 , 再返回给前端
文章图片
文章图片
缓存需要注意的问题
我们是用缓存保存热点数据的时候可能很少有更新或者删除的请款 , 但并不代表我们遇不到这种情况 , 所以我们在BlogService中还要添加一个updateBlogByTitle(String title,Integer views) , 方法主要是用来更新数据库和MongoDB缓存中的数据库缓存数据的修改注意缓存一致性
在BlogSerivce中添加update方法publicbooleanupdateBlogByTitle(Stringtitle,Integerviews){try{Queryquery=newQuery(Criteria.where("title").is(title));Updateupdate=newUpdate();update.set("views",views);mongoTemplate.upsert(query,update,Blog.class);Stringsql="updatemybatis.blogsetviews=?wheretitle=?";intisUpdate=jdbcTemplate.update(sql,views,title);if(isUpdate==0){returnfalse;}}catch(Exceptione){returnfalse;}returntrue;}
controller配置对应视图层@GetMapping("updateBlog")publicStringupdateBlog(Stringtitle,Integerviews){booleanb=blogService.updateBlogByTitle(title,views);returnb?"updatesuccess":"updatefailed";}运行
运行SpringBoot主类 , 访问项目地址
http://localhost:8080/updateBlog?title=Java如此简单&views=5533
可以发现缓存和数据库中的数据均更新成功
文章图片
文章图片
缓存数据的删除
service添加删除逻辑publicbooleandeleteBlogByTitle(Stringtitle){try{Queryquery=newQuery(Criteria.where("title").is(title));mongoTemplate.remove(query,Blog.class);Stringsql="deletefrommybatis.blogwheretitle=?";intisDel=jdbcTemplate.update(sql,title);if(isDel==0){returnfalse;}}catch(Exceptione){returnfalse;}returntrue;}
controller添加视图@GetMapping("delete/{title}")publicStringdeleteBlog(@PathVariableStringtitle){booleanb=blogService.deleteBlogByTitle(title);returnb?"deletesuccess":"deletefailed";}测试
访问 http://localhost:8080/delete/MongoDB如此简单 发现缓存和数据库中的数据均被删除
最后添加的逻辑也基本一致 , 这里不再赘述 , 感兴趣的同学可以继续测试!做缓存时最重要的就是数据的一致性 , 千万不要出现缓存和数据库中的数据不一致的情况 。
版权声明:本文为博主原创文章 , 遵循 CC 4.0 BY-SA 版权协议 , 转载请附上原文出处链接和本声明 。
推荐阅读
- 电池技术,相机发烧|防爆相机多少钱能买到?
- 行业互联网|深圳第22届高交会闭幕:一大批新技术新成果集中亮相
- 电池技术|动能转换看烟台|有锂电池的地方就有创为
- 行业互联网|2020十大新兴技术揭晓!每一项都可能颠覆我们的生活
- 行业互联网|英国运输技术论坛发布网络安全标准和指南摘要
- 钉科技|“选择性过滤”太难?方太“死磕”8年突破净水技术
- 中国新闻网|告别各自为营,梧桐车联宣布开放系统“技术底座”
- 腾讯|腾讯举办科学脱口秀X-Talk,聚焦人工智能、基因编辑等前沿技术
- |「推仔说新闻」NVIDIA曝光CPU+GPU加速技术 支持两家处理器
- 产业|清华教授魏少军:信息技术产业是全球GDP增长的主要动力