栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot 访问 MongoDB

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot 访问 MongoDB

一, MongoTemplate 的⽅式

第1步:基于maven新建springboot⼯程


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

第2步: 配置⽂件application.properties

spring.data.mongodb.host=192.168.211.136
spring.data.mongodb.port=37017
spring.data.mongodb.database=lg_resume

第3步: DAO 实现类 注⼊ MongoTemplate 完成增删改查

@Autowired
protected MongoTemplate mongoTemplate;

第4步: 从Spring容器中获取DAO对象 进⾏测试

bean.Resume

@Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Resume {
    private String id;
    private String name;
    private String city;
    private Date birthday;
    private Double expectSalary;
}

dao.resumeDao

public interface ResumeDao {
    void  insertResume(Resume resume);
    
    Resume  findByName(String name);
    List findList(String name);
    
    List findListByNameAndExpectSalary(String name, double expectSalary);
}

impl.ResumeDaoImpl

@Repository("resumeDao")
public class ResumeDaoImpl implements ResumeDao {
    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public void insertResume(Resume resume) {
        //mongoTemplate.insert(resume);
        mongoTemplate.insert(resume, "lg_resume_datas");
    }

    @Override
    public Resume findByName(String name) {
        Query query = new Query();
        query.addCriteria(Criteria.where("name").is(name));
        List datas = mongoTemplate.find(query, Resume.class, "lg_resume_datas");
        return datas.isEmpty() ? null : datas.get(0);
    }

    @Override
    public List findList(String name) {
        Query query = new Query();
        query.addCriteria(Criteria.where("name").is(name));
        List datas = mongoTemplate.find(query, Resume.class, "lg_resume_datas");
        return datas;
    }

    @Override
    public List findListByNameAndExpectSalary(String name, double expectSalary) {
        Query query = new Query();
        //query.addCriteria(Criteria.where("name").is(name).andOperator(Criteria.where("expectSalary").is(expectSalary)));
        query.addCriteria(Criteria.where("name").is(name).andOperator(Criteria.where("expectSalary").is(expectSalary)));
        return mongoTemplate.find(query, Resume.class, "lg_resume_datas");
    }

启动类 MongoTemplateMain

@SpringBootApplication
public class MongoTemplateMain {
    public static void main(String[] args) {
        ApplicationContext  applicationContext  = SpringApplication.run(MongoTemplateMain.class,args);
        ResumeDao  resumeDao = applicationContext.getBean("resumeDao", ResumeDao.class);

        //插入数据
        Resume resume  = new Resume();
        resume.setName("lisi22");
        resume.setCity("北京");
        Date date = null;
        String  dateStr = "yyyy-MM-dd hh:mm:ss";
        SimpleDateFormat simpleDateFormat  = new SimpleDateFormat(dateStr);
        try {
            date = simpleDateFormat.parse("2003-11-02 11:13:14");
        } catch (ParseException | java.text.ParseException e) {
            e.printStackTrace();
        }
        resume.setBirthday(date);
        resume.setExpectSalary(28000.0);
        resumeDao.insertResume(resume);
        System.out.println("resume="+resume);

        //查找
        Resume resume2  =resumeDao.findByName("lisi22");
        System.out.println(resume2);
        List datas = resumeDao.findList("zhangsan");
        System.out.println(datas);
        List datas2 = resumeDao.findListByNameAndExpectSalary("lisi22111",28000.0);
        System.out.println(datas2);
    }
}

MongoRepository 的⽅式
第1步:基于maven新建springboot⼯程


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

第2步: 配置⽂件application.properties

spring.data.mongodb.host=192.168.211.136
spring.data.mongodb.port=37017
spring.data.mongodb.database=lg_resume

第3步:编写实体类 并在实体类上打@document(“集合名”)
第4步:编写 Repository 接⼝ 继承 MongoRepository
⽅法具体参考:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
如果内置⽅法不够⽤ 就⾃⼰定义 如:定义find|read|get 等开头的⽅法进⾏查询
第5步: 从Spring容器中获取Repository对象 进⾏测试

bean.resume(同上)
reponsitory.ResumeRepository

public interface ResumeRepository extends MongoRepository {

    List findByNameEquals(String name);
}

启动类

@SpringBootApplication
public class MongoRepositoryMain {
    public static void main(String[] args) {
        ApplicationContext applicationContext = SpringApplication.run(MongoRepositoryMain.class, args);
        //根据类型获取对象
        ResumeRepository resumeRepository = applicationContext.getBean(ResumeRepository.class);
        System.out.println(resumeRepository.findAll());
        System.out.println(resumeRepository.findByNameEquals("lisi22"));
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号