`

Spring 集成mongodb实例

 
阅读更多

注意:spring-data-mongodb的版本在1.9.2,需要spring4.0的版本,如果此时版本低于4.0,启动时会报错,

报错信息如下:

springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.data.mongodb.core.MongoTemplate com.iflytek.ecss.service.MongoService.mongoTemplate; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoTemplate' defined in URL [file:/F:/wokeplace/mongotest/target/mongotest/WEB-INF/classes/applicationContext-mongodb.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.mongodb.core.MongoTemplate]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd

 

 

 

现在开始集成mongo

 

 1、使用maven,的pom需要的依赖

 


1、配置maven依赖
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.9.2.RELEASE</version></dependency>



2、mongodb配置()在已有的配置文件里导入
<!--导入Mongo->
<import resource="applicationContext-mongodb.xml"/>
下面就是applicationContext-mongodb.xml文件配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/data/mongo
          http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
<!-- mongo对象 -->
<mongo:mongo-client id="mongo" replica-set="${mongo.hostport}">
        <mongo:client-options connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
connect-timeout="${mongo.connectTimeout}"
max-wait-time="${mongo.maxWaitTime}"
socket-keep-alive="${mongo.socketKeepAlive}"
socket-timeout="${mongo.socketTimeout}" />
    </mongo:mongo-client>
    <mongo:db-factory dbname="database" mongo-ref="mongo" />
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo" />
        <constructor-arg name="databaseName" value="${mongo.databaseName}" />
    </bean>
</beans>


属性实例:
application.properties 文件

###mongo
mongo.hostport=127.0.0.1:27017
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
#连接超时时间
mongo.connectTimeout=1000
#等待时间
mongo.maxWaitTime=1500
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
#Socket超时时间
mongo.socketTimeout=1500
mongo.slaveOk=true
mongo.databaseName=userinfo
实例代码:

package com.iflytek.ecss.service;
import com.iflytek.ecss.model.UserModel;
import org.springframework.beans.factory.annotation.Autowired;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * Created by ss on 2017/4/18.
 */
@Service
public class MongoService {

    @Autowired
private MongoTemplate mongoTemplate;
    public void insert(UserModel userModel) {
        mongoTemplate.save(userModel);
}


    public UserModel findModel(String openid) {
        Query query = Query.query(Criteria.where("openId").is(openid));
UserModel userModel = mongoTemplate.findOne(query, UserModel.class);
        return userModel;
}


    public List<UserModel> findModelList(String telNo) {

        //精确查询
Query query = Query.query(Criteria.where("telNo").is(telNo));
//针对数组里进行and查询
Query query1 = Query.query(Criteria.where("adress").all("aaaa", "bbbb"));
//正则匹配
Query query2 = Query.query(Criteria.where("adress").regex("nihao"));
List<UserModel> userModels = mongoTemplate.find(query, UserModel.class);
        return userModels;
}

    //更新
public void upset() {
        Query query = Query.query(Criteria.where("openId").is("7ccc61dd-bd79-4aa8-baa3-30f7845e8b11"));
Update update = Update.update("nickName", "tom");
//只更新第一条
mongoTemplate.updateFirst(query, update, UserModel.class);
//更新多条
mongoTemplate.updateMulti(query, update, UserModel.class);
//有则更新,没有则插入
mongoTemplate.upsert(query, update, UserModel.class);
}

    //删除
public void del() {
        Query query = Query.query(Criteria.where("openId").is("7ccc61dd-bd79-4aa8-baa3-30f7845e8b11"));
mongoTemplate.remove(query, UserModel.class);
}

}

分享到:
评论

相关推荐

    springdata mongodb api文档

    这包括了使用Java元数据注册MongoDB实例、使用XML元数据注册MongoDB实例,以及如何实例化MongoTemplate。其中,MongoTemplate的配置涉及了写结果检查策略、Write Concern以及Write Concern解析器等高级特性。 通过...

    spring data mongodb代码参考

    Spring Data MongoDB 是一个用于简化MongoDB数据库操作的框架,它为Spring应用提供了强大的支持,使得开发者可以更加方便地集成和操作非关系型数据库。在这个"spring data mongodb代码参考"中,我们将深入探讨如何...

    spring mvc 集成mongoDB项目 例子

    在本项目中,我们将探讨如何将Spring MVC框架与MongoDB数据库进行集成,创建一个实际的应用实例。MongoDB是一个流行的开源、非关系型数据库系统,以其灵活性、可扩展性和高性能著称。而Spring MVC是Java开发Web应用...

    Spring-Data-MongoDB3.2

    - 创建MongoDBTemplate实例:通过Spring的bean定义,自动配置MongoDBTemplate。 - 实现Repository接口:创建自定义的Repository接口,继承Spring Data MongoDB提供的基类,并定义所需的查询方法。 **5. 使用示例** ...

    springMongodb参考文档中文版

    - **连接MongoDB**:介绍了如何使用Spring框架连接MongoDB实例,包括Java元数据和XML元数据两种方式。 - **MongoTemplate**:作为Spring Data MongoDB的核心类,提供了丰富的操作MongoDB的方法。 - **文档操作**:...

    spring4.2 mongodb 全部jar包

    3. 创建MongoDB模板:使用`MongoFactoryBean`或`MongoClient`创建MongoDB实例,然后通过`MongoTemplate`进行数据库操作。 4. 实现数据访问接口:可以使用`MongoRepository`接口定义CRUD操作,Spring Data会自动实现...

    spring data mongodb

    在Spring Boot项目中集成Spring Data MongoDB,首先需要在`pom.xml`文件中添加相关依赖。Spring Data MongoDB依赖通常包括`spring-boot-starter-data-mongodb`,这个依赖会自动配置MongoDB的数据源。同时,可能还...

    spring-mongodb整合

    为了执行数据库操作,我们需要在Spring配置类中启用MongoDB支持,并实例化MongoTemplate或MongoDatabaseFactory。例如: ```java @Configuration @EnableMongoRepositories(basePackages = ...

    MongoDB复制集及与Spring集成操作

    复制集是MongoDB中的一组MongoDB实例,它们之间保持着数据同步。当主节点(Primary)出现故障时,复制集中的其他成员可以晋升为主节点,保证服务不中断。创建复制集的步骤如下: 1. **安装MongoDB**:在所有参与...

    springMVC集成mongoDB的demo

    在这个"springMVC集成mongoDB的demo"中,我们将探讨如何将这两个强大的工具结合在一起,实现一个高效、可扩展的数据存储和检索解决方案。 首先,让我们了解一下SpringMVC。SpringMVC是基于Model-View-Controller...

    spring-mongodb整合源码 注释

    这个项目的目标是简化MongoDB与Java应用的集成,通过提供一套高级API,使得开发人员能够更便捷地操作MongoDB。 在整合过程中,我们需要引入以下关键组件: 1. **MongoDB驱动**:这是连接MongoDB的基础,提供了与...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    总结来说,Spring Data MongoDB通过`MongoDBTemplate`简化了MongoDB的集成和操作,使得开发者能够专注于业务逻辑而不是底层数据库交互。对于初学者,这是一个很好的起点,可以快速上手MongoDB和Spring Data的使用。

    spring+mongodb集群搭建Demo

    在本教程中,我们将深入探讨如何使用Spring框架与MongoDB数据库构建一个集群环境。MongoDB是一种流行的NoSQL数据库,而Spring框架是...通过以上步骤,您可以成功地构建一个可靠的MongoDB集群,并与Spring框架无缝集成。

    spring-boot操作mongodb例子

    在 "spring-boot-mongodb" 这个示例中,我们将深入探讨如何在 Spring Boot 应用程序中集成和操作 MongoDB 数据库。以下是一些关键知识点: 1. **添加依赖**: 要使用 MongoDB,首先要在 `pom.xml` 或 `build....

    JAVA操作MongoDB之spring整合

    首先,集成MongoDB到Spring项目中,我们需要在`pom.xml`文件中添加MongoDB和Spring Data MongoDB的相关依赖。这通常包括`mongodb-driver`、`spring-data-mongodb`和`spring-boot-starter-data-mongodb`等。例如: `...

    spring-data-mongodb-parent-reference

    这部分内容包括使用Java和XML元数据注册MongoDB实例,以及MongoDbFactory接口的使用。此外,还介绍了MongoTemplate的创建、使用策略和写关注(Write Concern)的概念。 具体到 "Saving, Updating, and Removing ...

    spring-data-mongodb-reference 1.5.4

    Spring Data MongoDB 1.5.4 为开发者提供了丰富的功能,简化了 MongoDB 数据库的集成工作。它不仅提供了对 CRUD 操作的支持,还支持复杂的查询和聚合操作,同时还集成了 Spring 生态系统中的其他组件。这使得开发者...

    mongodb+spring+hibernate集成入门demo

    集成MongoDB、Spring和Hibernate的过程涉及多方面的知识,包括Spring的配置、MongoDB的文档模型、以及Spring Data MongoDB的查询方法。理解并掌握这些概念和实践,对于提升Java后端开发技能至关重要。

Global site tag (gtag.js) - Google Analytics