SpringBoot_持久化方案_MongoDB

桃扇骨 2021-10-06 03:30 382阅读 0赞

SpringBoot_持久化方案_MongoDB

  • 依赖pom.xml
  • 配置文件bootstrap.properties
  • 配置源码

依赖pom.xml

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-mongodb</artifactId>
  4. </dependency>

配置文件bootstrap.properties

  1. pingruan.base.use-mongo=true
  2. spring.data.mongodb.uri=mongodb://root:qwe123@192.168.164.100:27017
  3. spring.data.mongodb.database=vander-service-demo

配置源码

  1. /**
  2. * Mongodb配置
  3. *
  4. * @author: vander
  5. * @create: 2018/12/05 13:49
  6. */
  7. @Configuration
  8. @ConditionalOnProperty(value="pingruan.base.use-mongo",havingValue="true")
  9. public class MongoConfig {
  10. @Value("${spring.data.mongodb.uri}")
  11. private String uri;
  12. @Value("${spring.data.mongodb.databa se}")
  13. private String database;
  14. @Bean
  15. @Primary
  16. public MongoMappingContext mongoMappingContext() {
  17. MongoMappingContext mappingContext = new MongoMappingContext();
  18. return mappingContext;
  19. }
  20. @Bean
  21. @Primary
  22. public MappingMongoConverter mappingMongoConverter() {
  23. DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(this.dbFactory());
  24. MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, this.mongoMappingContext());
  25. converter.setTypeMapper(new DefaultMongoTypeMapper(null));
  26. return converter;
  27. }
  28. @Bean
  29. @Primary
  30. public MongoDbFactory dbFactory() {
  31. return new SimpleMongoDbFactory(new MongoClient(new MongoClientURI(uri)),database);
  32. }
  33. @Bean
  34. @Primary
  35. public MongoTemplate mongoTemplate() {
  36. return new MongoTemplate(dbFactory(), this.mappingMongoConverter());
  37. }
  38. }
  39. /**
  40. * mongodb操作
  41. *
  42. * @author: vander
  43. * @create: 2018/12/03 14:39
  44. */
  45. public class MongoDao<T> {
  46. @Autowired(required = false)
  47. MongoTemplate mongoTemplate;
  48. private void checkObj(MongoTemplate mongoTemplate) {
  49. if (null == mongoTemplate){
  50. throw new BException("mongo init error ...", 500);
  51. }
  52. }
  53. /**
  54. * 条件查询
  55. *
  56. * @param query 条件
  57. * @param entityClass 对象
  58. * @return
  59. */
  60. public List<T> find(Query query, Class<T> entityClass) {
  61. checkObj(mongoTemplate);
  62. return mongoTemplate.find(query, entityClass);
  63. }
  64. /**
  65. * 查询记录数
  66. *
  67. * @param query 条件
  68. * @param entityClass 对象
  69. * @return
  70. */
  71. public long count(Query query, Class<T> entityClass) {
  72. checkObj(mongoTemplate);
  73. return mongoTemplate.count(query, entityClass);
  74. }
  75. /**
  76. * 查询所有
  77. * @param entityClass 对象
  78. * @return
  79. */
  80. public List<T> findAll(Class<T> entityClass){
  81. checkObj(mongoTemplate);
  82. return mongoTemplate.findAll(entityClass);
  83. }
  84. /**
  85. * 保存对象
  86. * @param entityClass
  87. */
  88. public void save(Object entityClass){
  89. checkObj(mongoTemplate);
  90. mongoTemplate.save(entityClass);
  91. }
  92. /**
  93. * 根据id获取数据
  94. *
  95. * @param id
  96. * @param entityClass
  97. * @return
  98. */
  99. public T findById(Object id,Class<T> entityClass){
  100. checkObj(mongoTemplate);
  101. return mongoTemplate.findById(id,entityClass);
  102. }
  103. /**
  104. * 更新数据
  105. * @param query
  106. * @param update
  107. * @param entityClass
  108. * @return
  109. */
  110. public long update(Query query, Update update, Class<?> entityClass){
  111. checkObj(mongoTemplate);
  112. UpdateResult updateResult = mongoTemplate.updateMulti(query, update, entityClass);
  113. return updateResult.getModifiedCount();
  114. }
  115. /**
  116. *
  117. * 删除数据
  118. * @param query
  119. * @param entityClass
  120. * @return
  121. */
  122. public long delete(Query query, Class<?> entityClass){
  123. checkObj(mongoTemplate);
  124. DeleteResult deleteResult = mongoTemplate.remove(query, entityClass);
  125. return deleteResult.getDeletedCount();
  126. }
  127. }
  128. /**
  129. * cms页面列表
  130. *
  131. * @author vander
  132. * @date 2018年11月15日
  133. */
  134. @Data
  135. @ToString
  136. @Document(collection = "cms_page")
  137. public class CmsPage {
  138. /**
  139. * 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
  140. */
  141. //站点ID
  142. @NotBlank(message = "站点ID不能为空")
  143. private String siteId;
  144. //页面ID
  145. @Id
  146. private String pageId;
  147. //页面名称
  148. @NotBlank(message = "页面名称不能为空")
  149. private String pageName;
  150. //别名
  151. @NotBlank(message = "别名不能为空")
  152. private String pageAliase;
  153. //访问地址
  154. @NotBlank(message = "访问地址不能为空")
  155. private String pageWebPath;
  156. //参数
  157. private String pageParameter;
  158. //物理路径
  159. @NotBlank(message = "物理路径不能为空")
  160. private String pagePhysicalPath;
  161. //类型(静态/动态)
  162. @NotBlank(message = "类型不能为空")
  163. private String pageType;
  164. //页面模版
  165. private String pageTemplate;
  166. //页面静态化内容
  167. private String pageHtml;
  168. //状态
  169. private String pageStatus;
  170. //创建时间
  171. @NotNull(message = "创建时间不能为空")
  172. private Date pageCreateTime;
  173. //模版id@NotBlank(message = "页面模版不能为空")
  174. private String templateId;
  175. //参数列表
  176. private List<CmsPageParam> pageParams;
  177. //模版文件Id
  178. // private String templateFileId;
  179. //静态文件Id
  180. private String htmlFileId;
  181. //数据Url
  182. private String dataUrl;
  183. }

发表评论

表情:
评论列表 (有 0 条评论,382人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redis持久方案

    Rdb方式 Redis默认的方式,redis通过快照来将数据持久化到磁盘中。 设置持久化快照的条件 在redis.conf中修改持久化快照的条件,如下: ![

    相关 redis持久方案

    学习[Redis][]时为了复习方便,特将笔记截图上传。 Redis持久化方案 一、Rdb方式 1、Rdb方式           Redis默认的方式,redis通过