starter-data-mongodb

打印 上一主题 下一主题

主题 1590|帖子 1590|积分 4770

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
pom依赖

  1. <!--mongo依赖-->
  2. <dependency>
  3.      <groupId>org.springframework.boot</groupId>
  4.      <artifactId>spring-boot-starter-data-mongodb</artifactId>
  5. </dependency>
  6. <!--测试依赖-->
  7. <dependency>
  8.      <groupId>org.springframework.boot</groupId>
  9.      <artifactId>spring-boot-starter-test</artifactId>
  10.      <scope>test</scope>
  11. </dependency>
复制代码
mongodb yml连接信息

  1. spring:
  2.   data:
  3.     mongodb:
  4.       uri: mongodb://admin:admin@192.168.98.128:27017/articledb?authSource=admin
复制代码
springboot主方法

不必要排除mongodb,利用spring自带的mongo连接
  1. @SpringBootApplication
  2. @Slf4j
  3. public class SpringbootApplication {
  4.     public static void main(String[] args) {  SpringApplication.run(SpringbootApplication.class, args);
  5.     }
  6. }
复制代码
mongo实体类

对应具体mongo collection
  1. @Document(collection  = "BalanceTest") //集合名称
  2. @Data
  3. public class BalanceEntity implements Serializable {
  4.     //主键标识,该属性的值会自动对应MongoDB的主键字段_id,如果该属性名就叫"id"则该注解可以省略,否则必须写
  5.     @Id //主键
  6.     private String id;
  7.     //该属性对应MongoDB字段的名字,如果一致,则无需该注解
  8.     @Field("articleid")
  9.     private int articleId;
  10.     private String content;
  11.     private Date createTime;
  12. }
复制代码
dao层

MongoRepository<T, ID>中ID为主键范例
  1. //MongoRepository<T, ID>中ID为主键类型
  2. public interface BalanceRepository extends MongoRepository<BalanceEntity, String> {
  3.     //ArticleId为需要查询的字段
  4.     Page<BalanceEntity> findByArticleId(String parentid,Pageable pageable);
  5. }
复制代码
service层

调用dao层或者利用mongoTemplate方法
  1. import org.springframework.data.domain.Page;
  2. import org.springframework.data.domain.PageRequest;
  3. import org.springframework.data.mongodb.core.MongoTemplate;
  4. import org.springframework.data.mongodb.core.query.Criteria;
  5. import org.springframework.data.mongodb.core.query.Query;
  6. import org.springframework.data.mongodb.core.query.Update;
  7. import org.springframework.stereotype.Service;
  8. @Service
  9. public class BalanceService {
  10.     @Autowired
  11.     private BalanceRepository balanceRepository;
  12.     @Autowired
  13.     private MongoTemplate mongoTemplate;
  14.     public void saveBalance(BalanceEntity balanceEntity) {
  15.         balanceRepository.save(balanceEntity);
  16.     }
  17.     public void updateBalance(BalanceEntity balanceEntity) {
  18.         balanceRepository.save(balanceEntity);
  19.     }
  20.     /**
  21.      * 根据id删除评论
  22.      */
  23.     public void deleteCommentById(String id){
  24.         //调用dao
  25.         balanceRepository.deleteById(id);
  26.     }
  27.     /**
  28.      * 查询所有评论
  29.      */
  30.     public List<BalanceEntity> findCommentList(){
  31.         //调用dao
  32.         return balanceRepository.findAll();
  33.     }
  34.     /**
  35.      * 根据id查询评论
  36.      */
  37.     public BalanceEntity findCommentById(String id){
  38.         //调用dao
  39.         return balanceRepository.findById(id).get();
  40.     }
  41.     /**
  42.      * 分页条件查询
  43.      */
  44.     public Page<BalanceEntity> findByArticleId(String articleId, int page, int size) {
  45.         return balanceRepository.findByArticleId(articleId,PageRequest.of(page-1,size));
  46.     }
  47.     /**
  48.      * 自增更新
  49.      */
  50.     public void updateIncrementArticleId(String id){
  51.         //  查询条件
  52.         Query query = Query.query(Criteria.where("_id").is(id));
  53.         //  更新条件
  54.         Update update = new Update();
  55.         //需要自增的字段
  56.         update.inc("articleId");
  57.         mongoTemplate.updateFirst(query,update,BalanceEntity.class);
  58.     }
  59. }
复制代码
测试类,调用server层

  1. @RunWith(SpringRunner.class)
  2. @SpringBootTest
  3. public class BalanceServiceTest {
  4.     @Autowired
  5.     private BalanceService balanceService;
  6.     @Test
  7.     public void testFindCommentList() {
  8.         List<BalanceEntity> commentList = balanceService.findCommentList();
  9.         System.out.println(commentList);
  10.     }
  11.     @Test
  12.     public void testFindCommentById() {
  13.         BalanceEntity commentById = balanceService.findCommentById("672f82baba8fda7d061e2097");
  14.         System.out.println(commentById);
  15.     }
  16.     @Test
  17.     public void testSaveComment(){
  18.         BalanceEntity balanceEntity =new BalanceEntity();
  19.         balanceEntity.setContent("测试添加的数据");
  20.         balanceEntity.setCreateTime(new Date());
  21.         balanceEntity.setArticleId(1003);
  22.         balanceService.saveBalance(balanceEntity);
  23.     }
  24.     @Test
  25.     public void findByArticleId() {
  26.         Page<BalanceEntity> page = balanceService.findByArticleId("3", 1, 2);
  27.         System.out.println(page.getTotalElements());
  28.         System.out.println(page.getContent());
  29.     }
  30.     @Test
  31.     public void updateIncrementArticleId() {
  32.         balanceService.updateIncrementArticleId("67657f30c1e6c51645a0be55");
  33.     }
  34. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表