技术编程|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"));System.out.println(blog.toString());mongoTemplate.insert(blog);//这里不能直接把从jdbc模板类返回的对象存到MongoDB中 , 因为queryForList返回的对象并不是我们的实体类对象 , 我们要手动转存再存到缓存中//mongoTemplate.insert(maps);System.out.println("mysql拿的数据存到缓存中啦!");}}}
第一次查询 , 缓存中无结果 , 在数据库中查到 , 并存入缓存中
技术编程|SpringBoot怎么整合MongoDB?
文章图片

文章图片

第二次查询 , 直接从缓存中拿到结果并返回
技术编程|SpringBoot怎么整合MongoDB?
文章图片

文章图片

那既然思路和测试没问题 , 咱模拟的像一点 , 整个业务出来吧
在项目中创建controller和service文件夹
技术编程|SpringBoot怎么整合MongoDB?
文章图片

文章图片

分别创建BlogController和BlogServiceBlogController.javapackagecom.feng.controller;importcom.feng.pojo.Blog;importcom.feng.service.BlogService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RestController;/***
spirngboot-mongodb-test
***@author:Nicer_feng*@date:2020-10-1211:27**/@RestControllerpublicclassBlogController{@AutowiredBlogServiceblogService;@GetMapping("getBlog/{title}")publicBloggetBlog(@PathVariableStringtitle){BlogblogByTitle=blogService.getBlogByTitle(title);returnblogByTitle;}}我们这里类名使用@RestController注解声明该类为一个控制器 , 并且返回JSON字符串给前端 。BlogService.javapackagecom.feng.service;importcom.feng.pojo.Blog;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.mongodb.core.MongoTemplate;importorg.springframework.data.mongodb.core.query.Criteria;importorg.springframework.data.mongodb.core.query.Query;importorg.springframework.jdbc.core.JdbcTemplate;importorg.springframework.stereotype.Service;importjava.util.Date;importjava.util.List;importjava.util.Map;importjava.util.Set;/***
spirngboot-mongodb-test
***@author:Nicer_feng*@date:2020-10-1211:27**/@ServicepublicclassBlogService{@AutowiredMongoTemplatemongoTemplate;@AutowiredJdbcTemplatejdbcTemplate;publicBloggetBlogByTitle(Stringtitle){Queryquery=newQuery(Criteria.where("title").is(title));Blogone=mongoTemplate.findOne(query,Blog.class);if(one!=null){System.out.println("从缓存数据库直接拿的数据:"+one);}else{Stringsql="SELECT*FROMmybatis.blogWHEREblog.title=?";List>maps=jdbcTemplate.queryForList(sql,title);System.out.println("从mysql数据库拿的数据:"+maps.toString());Map


推荐阅读