JavaFX,Unity3D,Android,IOS等技术教程和生活随笔,仅供记录

http://www.wingmei.cn/wp-content/themes/Vtrois-Kratos-e85a527/images/background.jpg

SpringBoot使用Spring Data集成MongoDB报错的问题

其实本人不是主要做Java Web的,但因为各种原因最近也在看SpringBoot相关的内容。

遥想当年毕业时还在流行Struts Hibernate之类的SSH框架,如今包括应届毕业生在内,简历上都是铺天盖地的Spring、SpringMVC、SpringBoot、Redis等等,培训机构功不可没。

近日使用Spring Data Mongodb来集成MongoDB的连接时,一直报错java.lang.NoSuchMethodError: ‘com.mongodb.client.result.InsertOneResult’之类的,仔细看了一下应该是MongoDB Driver部分的引用库有问题。

Spring Data官方只写了spring-data-mongodb的库引入:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>3.0.3.RELEASE</version>
</dependency>

但事实上还需要引入mongodb相关的驱动,陆续使用了Maven上的mongodb-driver、mongo-java-driver均有问题,后来发现github上写的是引入mongodb-driver-sync,试了下果然可以了。

<dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>mongodb-driver-sync</artifactId>
   <version>4.1.0</version>
</dependency>

后面只需要通过MongoClient和MongoTemplate就可以进行MongoDB数据库的操作了。

//数据库配置
@Configuration
public class DbConfig {
    @Autowired
    public MongoClient mongoClient;

    @Bean
    public MongoTemplate createMT(){
        return new MongoTemplate(new SimpleMongoClientDatabaseFactory(mongoClient, "testdb"));
    }

    @Bean
    public MongoClient create(){
        return MongoClients.create("mongodb://admin:123456@localhost:27017");
    }
}
//保存数据
User user = new User();
user.setName(name);
user.setEmail(email);
user.setAddress(address);
mongoTemplate.save(user);

//查询数据
List<User> list = mongoTemplate.findAll(User.class);
点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注