環境依賴
在pom文件引入spring-boot-starter-data-mongodb依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
數據源配置
如果mongodb端口是默認端口,並且沒有設置密碼,可不配置,sprinboot會開啟默認的。
spring.data.mongodb.uri=mongodb://localhost:27017/springboot-db
mongodb設置了密碼,這樣配置:
spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/dbname
定義一個簡單的實體
mongodb
package cn.tao.domain; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection="t_customer") public class Customer {
public String _id; public String carNumber; public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } public String getCarNumber() { return carNumber; } public void setCarNumber(String carNumber) { this.carNumber = carNumber; } }
據操作dao層
@Repository
public interface CustomerRepository extends MongoRepository<Customer, String> { //public Customer findByFirstName(String firstName); //public List<Customer> findByLastName(String lastName); }
寫一個接口,繼承MongoRepository,這個接口有了幾本的CURD的功能。如果你想自定義一些查詢,比如根據firstName來查詢,獲取根據lastName來查詢,只需要定義一個方法即可。注意firstName嚴格按照存入的mongodb的字段對應。在典型的java的應用程序,寫這樣一個接口的方法,需要自己實現,但是在springboot中,你只需要按照格式寫一個接口名和對應的參數就可以了,因為springboot已經幫你實現了。
controller調用方式
package cn.tao.controller; import cn.tao.domain.KdVehicle; import cn.tao.repository.KdVehicleRepository; //import cn.tao.service.MongoService; import cn.tao.service.SynService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/mongo") public class MongoController { @Autowired private KdVehicleRepository kdVehicleRepository; @Autowired private MongoTemplate mongoTemplate; /** * 處理excel與數據庫之間的差異數據 * */ @RequestMapping("/list") public List<Customer> dobegin() throws Exception { List<Customer> list = kdVehicleRepository.findAll(); //List<KdVehicle> list2 = mongoTemplate.findAll(Customer.class);//也可以 return list; } }
