当前位置: 首页 > news >正文

汕头高端网站建设营销策略范文

汕头高端网站建设,营销策略范文,企业网站制作是什么,微信小程序开发平台下载MongoDB支持包含一系列功能:Spring配置支持基于Java的configuration类或Mongo驱动程序实例和副本集的XML命名空间。MongoTemplate帮助类,在执行常见的Mongo操作时提高生产力。包括文档和POJO之间的集成对象映射。将异常转换为Spring的可移植数据访问异常…

MongoDB支持包含一系列功能:

  • Spring配置支持基于Java的@configuration类或Mongo驱动程序实例和副本集的XML命名空间。

  • MongoTemplate帮助类,在执行常见的Mongo操作时提高生产力。包括文档和POJO之间的集成对象映射。

  • 将异常转换为Spring的可移植数据访问异常层次结构。

  • 与Spring的转换服务集成的功能丰富的对象映射。

  • 基于注释的映射元数据,可扩展以支持其他元数据格式。

  • 持久性和映射生命周期事件。

  • 基于Java的查询、标准和更新DSL。

  • 存储库接口的自动实现,包括对自定义查找器方法的支持。

  • QueryDSL集成以支持类型安全查询。

  • 对JPA实体的跨存储持久性支持,其字段透明地持久化并使用MongoDB检索(已弃用-将在不替换的情况下删除)。

  • 地理空间整合。

对于大多数任务,您应该使用MongoTemplate或Repository支持,这两者都利用了丰富的映射功能。MongoTemplate是寻找访问功能的地方,例如递增计数器或特别的CRUD操作。MongoTemplate还提供了回调方法,这样您就可以很容易地获得底层API工件,如com.mongodb.client.mongodb,以便与mongodb直接通信。各种API工件的命名约定的目标是将它们复制到基础MongoDB Java驱动程序中,这样您就可以轻松地将现有知识映射到Spring API上。

一、版本依赖关系

Spring Data Release Train

Spring Data MongoDB

Driver Version

Server Version

2022.0

4.0.x

4.7.x

6.0.x

2021.2

3.4.x

4.6.x

5.0.x

2021.1

3.3.x

4.4.x

5.0.x

2021.0

3.2.x

4.1.x

4.4.x

2020.0

3.1.x

4.1.x

4.4.x

Neumann

3.0.x

4.0.x

4.4.x

Moore

2.2.x

3.11.x/Reactive Streams 1.12.x

4.2.x

Lovelace

2.1.x

3.8.x/Reactive Streams 1.9.x

4.0.x

二、入门

1、引入依赖pom.xml

dependencies><!-- other dependency elements omitted --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId><version>4.0.3</version></dependency></dependencies>

2、您可能还想将日志记录级别设置为DEBUG以查看一些附加信息。为此,请编辑log4j.properties文件以包含以下内容:

log4j.category.org.springframework.data.mongodb=DEBUG
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %40.40c:%4L - %m%n

3、然后,您可以创建一个Person类来持久化:

package org.spring.mongodb.example;public class Person {private String id;private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getId() {return id;}public String getName() {return name;}public int getAge() {return age;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";}
}

4、定义连接配置类

@Configuration
public class AppConfig {/** Use the standard Mongo driver API to create a com.mongodb.client.MongoClient instance.*/public @Bean MongoClient mongoClient() {return MongoClients.create("mongodb://localhost:27017");}
}

5、您还需要一个主应用程序来运行:

package org.spring.mongodb.example;import static org.springframework.data.mongodb.core.query.Criteria.where;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;import com.mongodb.client.MongoClients;public class MongoApp {private static final Log log = LogFactory.getLog(MongoApp.class);public static void main(String[] args) throws Exception {MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "database");mongoOps.insert(new Person("Joe", 34));log.info(mongoOps.findOne(new Query(where("name").is("Joe")), Person.class));mongoOps.dropCollection("person");}
}

6、运行主程序:

10:01:32,062 DEBUG apping.MongoPersistentEntityIndexCreator:  80 - Analyzing class class org.spring.example.Person for index information.
10:01:32,265 DEBUG ramework.data.mongodb.core.MongoTemplate: 631 - insert Document containing fields: [_class, age, name] in collection: Person
10:01:32,765 DEBUG ramework.data.mongodb.core.MongoTemplate:1243 - findOne using query: { "name" : "Joe"} in db.collection: database.Person
10:01:32,953  INFO      org.spring.mongodb.example.MongoApp:  25 - Person [id=4ddbba3c0be56b7e1b210166, name=Joe, age=34]
10:01:32,984 DEBUG ramework.data.mongodb.core.MongoTemplate: 375 - Dropped collection [database.person]

二、保存、更新和删除文档

MongoTemplate允许您保存、更新和删除域对象,并将这些对象映射到存储在 MongoDB 中的文档。

请考虑以下类:

public class Person {private String id;private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getId() {return id;}public String getName() {return name;}public int getAge() {return age;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";}}

给定上例中的Person类,您可以保存、更新和删除对象,如下例所示:

package org.spring.example;import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Update.update;
import static org.springframework.data.mongodb.core.query.Query.query;import java.util.List;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;import com.mongodb.client.MongoClients;public class MongoApp {private static final Log log = LogFactory.getLog(MongoApp.class);public static void main(String[] args) {MongoOperations mongoOps = new MongoTemplate(new SimpleMongoClientDbFactory(MongoClients.create(), "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);// Findp = mongoOps.findById(p.getId(), Person.class);log.info("Found: " + p);// UpdatemongoOps.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);// DeletemongoOps.remove(p);// Check that deletion workedList<Person> people =  mongoOps.findAll(Person.class);log.info("Number of people = : " + people.size());mongoOps.dropCollection(Person.class);}
}

前面的示例将生成以下日志输出(包括来自MongoTemplate的调试消息):

DEBUG apping.MongoPersistentEntityIndexCreator:  80 - Analyzing class class org.spring.example.Person for index information.
DEBUG work.data.mongodb.core.MongoTemplate: 632 - insert Document containing fields: [_class, age, name] in collection: person
INFO               org.spring.example.MongoApp:  30 - Insert: Person [id=4ddc6e784ce5b1eba3ceaf5c, name=Joe, age=34]
DEBUG work.data.mongodb.core.MongoTemplate:1246 - findOne using query: { "_id" : { "$oid" : "4ddc6e784ce5b1eba3ceaf5c"}} in db.collection: database.person
INFO               org.spring.example.MongoApp:  34 - Found: Person [id=4ddc6e784ce5b1eba3ceaf5c, name=Joe, age=34]
DEBUG work.data.mongodb.core.MongoTemplate: 778 - calling update using query: { "name" : "Joe"} and update: { "$set" : { "age" : 35}} in collection: person
DEBUG work.data.mongodb.core.MongoTemplate:1246 - findOne using query: { "name" : "Joe"} in db.collection: database.person
INFO               org.spring.example.MongoApp:  39 - Updated: Person [id=4ddc6e784ce5b1eba3ceaf5c, name=Joe, age=35]
DEBUG work.data.mongodb.core.MongoTemplate: 823 - remove using query: { "id" : "4ddc6e784ce5b1eba3ceaf5c"} in collection: person
INFO               org.spring.example.MongoApp:  46 - Number of people = : 0
DEBUG work.data.mongodb.core.MongoTemplate: 376 - Dropped collection [database.person]

MongoConverter通过识别(通过约定)Id属性名称,导致存储在数据库中的String和ObjectId之间的隐式转换。

1、如何在映射层中处理_id字段

MongoDB要求所有文档都有一个_id字段。如果不提供,则驱动程序会为ObjectId分配一个生成的值。使用MappingMongoConverter时,某些规则控制Java类中的财产如何映射到此_id字段:

  1. 用@Id(org.springframework.data.annotation.Id)注释的属性或字段映射到_Id字段。

  1. 没有注释但命名为id的属性或字段映射到_id字段。

以下概述了在使用MappingMongoConverter(MongoTemplate的默认值)时,对映射到_id文档字段的属性进行的类型转换(如果有的话)。

  1. 如果可能,Java类中声明为String的id属性或字段将通过使用Spring Converter<String,ObjectId>转换为ObjectId并存储为ObjectId。有效的转换规则被委托给MongoDB Java驱动程序。如果无法将其转换为ObjectId,则该值将作为字符串存储在数据库中。

  1. Java类中声明为BigInteger的id属性或字段通过使用Spring Converter<BigInteger,ObjectId>转换为ObjectId并存储为ObjectId。

如果Java类中不存在先前规则集中指定的字段或属性,则驱动程序会生成一个隐式_id文件,但不会映射到Java类的属性或字段。

在查询和更新时,MongoTemplate使用与前面保存文档的规则相对应的转换器,以便查询中使用的字段名和类型可以与域类中的字段名称和类型相匹配。

一些环境需要一种定制的方法来映射Id值,例如存储在MongoDB中的数据,这些数据没有通过Spring data映射层运行。文档可以包含_id值,这些值可以表示为ObjectId或String。将文档从存储区读取回域类型就可以了。由于隐含的ObjectId转换,通过文档id查询文档可能会很麻烦。因此,无法通过这种方式检索文档。对于这些情况,@MongoId提供了对实际id映射尝试的更多控制。

public class PlainStringId {@MongoId String id; (1)
}public class PlainObjectId {@MongoId ObjectId id; (2)
}public class StringToObjectId {@MongoId(FieldType.OBJECT_ID) String id; (3)
}
http://www.shuangfujiaoyu.com/news/19178.html

相关文章:

  • 网站站点建立东莞网络推广哪家公司奿
  • 广州建设网站哪个公司做网站推广最好
  • 10套免费ppt模板福建seo关键词优化外包
  • wordpress主题的安装seo精准培训课程
  • 成都网站建设 小兵阿里云域名查询
  • 做苗木网站哪个公司好西地那非片能延时多久有副作用吗
  • 服务器iis做网站网络推广是什么
  • 翡翠原石网站首页怎么做seo最强
  • wordpress 站点地图网站源码平台
  • 做网站前期构架图想要网站推广版
  • 学习如何做网站广西seo
  • 如何将百度云做成网站文件服务器中国宣布疫情结束日期
  • 石家庄企业网站建设宁波seo优化项目
  • 做啥英文网站赚钱saas建站平台
  • 泉州有哪些公司是做网站免费推广的网站
  • 做网站需要用什麼服务器全网营销老婆第一人
  • 公司网站做的很烂网络营销方式有哪几种
  • 做直播网站软件今日新闻最新头条10条
  • 服务器wordpress建站教程怎么在网上打广告
  • 怎么验证网站马鞍山seo
  • 如何加强网站建设和信息宣传宁波网络推广
  • 沈阳企业网站开发定制如何网络媒体推广
  • 网站seo推广多少钱国际网站平台有哪些
  • 室内装修装饰设计培训班广州seo网站推广
  • 嘉兴市住房和城乡建设局网站磁力搜索引擎torrentkitty
  • 网站推广连接怎么做的飞猪关键词排名优化
  • 海南政府网站集约化建设网站推广策划思路
  • 诸城网站做的好的电脑培训零基础培训班
  • 如何用.net做网站最新疫情最新情况
  • windows wordpress mi天津做优化好的公司