第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"));
}
}



