Spring Boot中使用MongoDB数据库(3)
- UID
- 1066743
|
Spring Boot中使用MongoDB数据库(3)
方式一直接使用mongotemplate
springboot会自动注入mongotemplate,使用引用
@Autowired
MongoTemplate mongotemplate;
即可。如下:
package com.biologic.api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.biologic.entity.User;
@Controller
@EnableAutoConfiguration
public class SampleController {
@Autowired
MongoTemplate mongotemplate;
@RequestMapping("/")
@ResponseBody
String home() {
Query query = new Query();
query.addCriteria(Criteria.where("name").is("酒仙"));
String name = mongotemplate.findOne(query, User.class).getName();
return name;
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
方式二新建实体相关的repository接口
新建定义repository接口继承mongoRepository接口
package com.biologic.api.service;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Service;
import com.biologic.entity.User;
@Service
public interface UserRepository extends MongoRepository<User, String> {
public User findByName(String name);
}
写一个接口,继承MongoRepository,这个接口有了几本的CURD的功能。如果你想自定义一些查询,比如根据name来查询,只需要定义一个方法即可。注意firstName严格按照存入的mongodb的字段对应。在典型的Java的应用程序,写这样一个接口的方法,需要自己实现,但是在springboot中,你只需要按照格式写一个接口名和对应的参数就可以了,因为springboot已经帮你实现了。
repository接口需要在启动程序的同级目录或者子目录中,例如结构如下:
使用方式如下:
package com.biologic.api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.biologic.api.service.UserRepository;
@Controller
@EnableAutoConfiguration
public class SampleController {
@Autowired
UserRepository userRepository;
@RequestMapping("/")
@ResponseBody
String home() {
String name = userRepository.findByName("酒仙").getName();
return name;
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
} |
|
|
|
|
|