springBoot(22):集成mongodb
admin
2023-01-19 06:40:49
0

一、添加依赖



   org.springframework.boot
   spring-boot-starter-data-mongodb

二、配置application.properties

###########################mongodb开始####################################
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=db_test
###########################mongodb结束####################################

三、创建实体类

package com.example.demo.pojo;

import java.util.Date;

/**
 * 用户信息
 *
 * @Author: 我爱大金子
 * @Description: 用户信息
 * @Date: Create in 14:09 2017/7/5
 */
public class User {
   private int id;
   private String name;
   private Date createTime;

   public int getId() {
      return id;
   }

   public void setId(int id) {
      this.id = id;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public Date getCreateTime() {
      return createTime;
   }

   public void setCreateTime(Date createTime) {
      this.createTime = createTime;
   }

   @Override
   public String toString() {
      return "User{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", createTime=" + createTime +
            '}';
   }
}

四、使用MongoTemplate实现

MongodbComponent.java

package com.example.demo.utils.component;

import com.example.demo.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;

/**
 * Mongodb工具类
 *
 * @Author: 我爱大金子
 * @Description: Mongodb工具类
 * @Date: Create in 13:48 2017/7/5
 */
@Component
public class MongodbComponent {
    @Autowired
    private MongoTemplate mongoTemplate;

    public void insert(User user) {
        mongoTemplate.insert(user);
    }

    public void deleteById(int id) {
        Criteria criteria = Criteria.where("id").in(id);
        Query query = new Query(criteria);
        mongoTemplate.remove(query, User.class);
    }

    public void updateById(User user) {
        Criteria criteria = Criteria.where("id").in(user.getId());
        Query query = new Query(criteria);
        Update update = new Update();
        update.set("name", user.getName());
        update.set("createTime", user.getCreateTime());
        mongoTemplate.updateMulti(query, update, User.class);
    }

    public User selectById(int id) {
        Criteria criteria = Criteria.where("id").in(id);
        Query query = new Query(criteria);
        return mongoTemplate.findOne(query, User.class);
    }
}

MongoTemplateTest.java(测试)

package com.example.demo;

import com.example.demo.pojo.User;
import com.example.demo.utils.component.MongodbComponent;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Date;

/**
 * MongoTemplate测试
 *
 * @Author: 我爱大金子
 * @Description: MongoTemplate测试
 * @Date: Create in 13:54 2017/7/5
 */
public class MongoTemplateTest extends ApplicationTests {
    @Autowired
    private MongodbComponent mongodbComponent;
    @Test
    public void insert() {
        User user = new User();
        user.setId(1);
        user.setName("张三");
        user.setCreateTime(new Date());
        mongodbComponent.insert(user);
    }
    @Test
    public void select() {
        System.out.println(mongodbComponent.selectById(1));
    }

    @Test
    public void update() {
        User user = new User();
        user.setId(1);
        user.setName("李四");
        user.setCreateTime(new Date());
        mongodbComponent.updateById(user);
        System.out.println(mongodbComponent.selectById(1));
    }
    @Test
    public void delete() {
        mongodbComponent.deleteById(1);
    }
}

五、使用接口继承MongoRepository

UserDao.java

package com.example.demo.dao;

import com.example.demo.pojo.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

/**
 * 用户dao
 *
 * @Author: 我爱大金子
 * @Description: 用户dao
 * @Date: Create in 14:09 2017/7/5
 */
public interface UserDao extends MongoRepository {
    /**
     * 根据名称查找
     * @Author: 我爱大金子
     * @Description: 根据名称查找
     * @Date: 14:12 2017/7/5
     * @param name 名称
     * @return
     */
    List findByName(String name);

    /**
     * 根据名称分页查询
     * @Author: 我爱大金子
     * @Description: 分页查询
     * @Date: 14:15 2017/7/5
     * @param  name 名称
     * @param pageable 分页参数
     * @return
     */
    Page findByName(String name, Pageable pageable);
}

测试:

springBoot(22):集成mongodb


相关内容

热门资讯

卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...
美国动武后,外国领导人首次到访... 当地时间24日,哥伦比亚总统佩特罗抵达委内瑞拉。据悉,他将与委代总统德尔西·罗德里格斯举行会晤。这是...
特朗普权力游戏,正在掏空美国制... 2026年3月,美国国土安全部长诺姆被特朗普以一则帖子宣告出局,不到一个月,司法部长邦迪又以几乎同样...
伊朗晒出另一张“王炸”! 伊朗塔斯尼姆通讯社4月22日报道称,海湾阿拉伯国家的海底数据光缆仍存在在霍尔木兹海峡被切断的风险。这...
工业经济向新向好稳中有进(权威... 本报记者 王 政 刘温馨数据来源:工业和信息化部 制图:张芳曼“一季度,规模以上工业增加值同比增长6...
特朗普坚称伊朗内部“严重分裂”... 【文/观察者网 陈思佳】伊朗拒绝出席原定于4月22日在巴基斯坦举行的伊美第二轮谈判后,美国总统特朗普...
谷歌挑战英伟达 当地时间4月19日,有媒体援引知情人士的话报道称,Alphabet旗下的谷歌正在与美国无晶圆厂半导体...