zoukankan      html  css  js  c++  java
  • Spring boot -mongodb

    1.更接近原生mongodb
    public class MongoApp { 
    private static final Log log = LogFactory.getLog(MongoApp.class); 
    public static void main(String[] args) throws Exception {
     MongoOperations mongoOps = new MongoTemplate(new MongoClient(), "database"); 
    mongoOps.insert(new Person("Joe", 34)); 
    log.info(mongoOps.findOne(new Query(where("name").is("Joe")), Person.class)); mongoOps.dropCollection("person"); 
    } } 
    2.@Configuration public class AppConfig { 
    /* * Use the standard Mongo driver API to create a com.mongodb.MongoClient instance. */
    public @Bean MongoClient mongoClient() {
    return new MongoClient("localhost");
    } } 3.@Configuration
    public class AppConfig {
    /* * Factory bean that creates the com.mongodb.MongoClient instance */
    public @Bean MongoClientFactoryBean mongo() {
    MongoClientFactoryBean mongo = new MongoClientFactoryBean();
    mongo.setHost("localhost"); return mongo; } } 4. http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd

      

    5.spring与mongodb的整合
    <context:property-placeholder location="classpath:/com/myapp/mongodb/config/mongo.properties"/>
    
    <mongo:mongo-client host="${mongo.host}" port="${mongo.port}">
      <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}"
         auto-connect-retry="${mongo.autoConnectRetry}"
         socket-keep-alive="${mongo.socketKeepAlive}"
         socket-timeout="${mongo.socketTimeout}"
         slave-ok="${mongo.slaveOk}"
         write-number="1"
         write-timeout="0"
         write-fsync="true"/>
    </mongo:mongo-client>
    
    <mongo:db-factory dbname="database" mongo-ref="mongoClient"/>
    
    <bean id="anotherMongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
      <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
    </bean>
    MongodbTemplate一旦配置好,是线程安全的的,可以跨多个实例使用
    @Configuration
    public class AppConfig {
    
      public @Bean MongoClient mongoClient() {
          return new MongoClient("localhost");
      }
    
      public @Bean MongoTemplate mongoTemplate() {
          return new MongoTemplate(mongoClient(), "mydatabase");
      }
    }

    mongodb的构造函数:
    MongoTemplate(MongoClient mongo, String databaseName): 
    MongoTemplate(MongoDbFactory mongoDbFactory): 
    MongoTemplate(MongoDbFactory mongoDbFactory, MongoConverter mongoConverter): 
    
    <mongo:mongo-client host="localhost" port="27017"/>
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
      <constructor-arg ref="mongoClient"/>
      <constructor-arg name="databaseName" value="geospatial"/>
    </bean>
    

     官方推荐使用MongoOperations.对mongodb进行操作..

    public class MongoApp {
      private static final Log log = LogFactory.getLog(MongoApp.class);
      public static void main(String[] args) {
        MongoOperations mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "database"));
       Person p = new Person("Joe", 34);
        // Insert is used to initially store the object into the database.
        mongoOps.insert(p);
        log.info("Insert: " + p);
        // Find
        p = mongoOps.findById(p.getId(), Person.class);
        log.info("Found: " + p);
        // Update
        mongoOps.updateFirst(query(where("name").is("Joe")), update("age", 35), Person.class);
        p = mongoOps.findOne(query(where("name").is("Joe")), Person.class);
        log.info("Updated: " + p);
        // Delete
        mongoOps.remove(p);
        // Check that deletion worked
        List<Person> people =  mongoOps.findAll(Person.class);
        log.info("Number of people = : " + people.size());
        mongoOps.dropCollection(Person.class);
      }
    }

      

  • 相关阅读:
    C语言ASM汇编内嵌语法
    Linux下安装安装arm-linux-gcc
    苹果手机(ios系统)蓝牙BLE的一些特点
    蓝牙BLE数据包格式汇总
    蓝牙BLE4.0的LL层数据和L2CAP层数据的区分与理解
    nrf52840蓝牙BLE5.0空中数据解析
    nrf52840蓝牙BLE5.0空中速率测试(nordic对nordic)
    nrf52832协议栈S132特性记录
    使用 Open Live Writer 创建我的第一个博文
    Codeforces Round #691 (Div. 2) D
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9444764.html
Copyright © 2011-2022 走看看