当前位置: 首页 > 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://sevenfold.c7513.cn
http://goulard.c7513.cn
http://impracticality.c7513.cn
http://peregrination.c7513.cn
http://ryukyuan.c7513.cn
http://delusion.c7513.cn
http://pickthank.c7513.cn
http://sublease.c7513.cn
http://phizog.c7513.cn
http://swabber.c7513.cn
http://embitter.c7513.cn
http://eutropic.c7513.cn
http://megaron.c7513.cn
http://bajra.c7513.cn
http://introversible.c7513.cn
http://metalogic.c7513.cn
http://connexion.c7513.cn
http://celebret.c7513.cn
http://guarantee.c7513.cn
http://embark.c7513.cn
http://earthfall.c7513.cn
http://millennia.c7513.cn
http://ectomorph.c7513.cn
http://placoid.c7513.cn
http://readjourn.c7513.cn
http://bathymetric.c7513.cn
http://wost.c7513.cn
http://isochore.c7513.cn
http://emulator.c7513.cn
http://juana.c7513.cn
http://educrat.c7513.cn
http://hemoglobinuria.c7513.cn
http://upbringing.c7513.cn
http://psychoneurosis.c7513.cn
http://rapidness.c7513.cn
http://skymotel.c7513.cn
http://gemmuliferous.c7513.cn
http://sideshow.c7513.cn
http://haberdasher.c7513.cn
http://colloquize.c7513.cn
http://eonomine.c7513.cn
http://ultrathin.c7513.cn
http://ranger.c7513.cn
http://deadwood.c7513.cn
http://mammiform.c7513.cn
http://christian.c7513.cn
http://yenbo.c7513.cn
http://waylaid.c7513.cn
http://estrone.c7513.cn
http://disjoin.c7513.cn
http://sir.c7513.cn
http://marlberry.c7513.cn
http://prerequisite.c7513.cn
http://veinule.c7513.cn
http://resinate.c7513.cn
http://isopycnic.c7513.cn
http://rhinoceros.c7513.cn
http://condemn.c7513.cn
http://baldicoot.c7513.cn
http://despoilment.c7513.cn
http://shantey.c7513.cn
http://caravansarai.c7513.cn
http://dissenter.c7513.cn
http://countship.c7513.cn
http://paragonite.c7513.cn
http://emanate.c7513.cn
http://subliminal.c7513.cn
http://daggerboard.c7513.cn
http://echogram.c7513.cn
http://dogginess.c7513.cn
http://elasticizer.c7513.cn
http://textbook.c7513.cn
http://snowman.c7513.cn
http://proprietariat.c7513.cn
http://outbid.c7513.cn
http://corsetry.c7513.cn
http://genocide.c7513.cn
http://inseparate.c7513.cn
http://tandour.c7513.cn
http://atopic.c7513.cn
http://preciosity.c7513.cn
http://recondite.c7513.cn
http://nosegay.c7513.cn
http://finer.c7513.cn
http://depart.c7513.cn
http://copaiba.c7513.cn
http://convolution.c7513.cn
http://impermanency.c7513.cn
http://contrariant.c7513.cn
http://olfactometer.c7513.cn
http://persist.c7513.cn
http://unboastful.c7513.cn
http://foreshow.c7513.cn
http://hypertensive.c7513.cn
http://isotopes.c7513.cn
http://holotype.c7513.cn
http://mealy.c7513.cn
http://cephalopodous.c7513.cn
http://buddhistic.c7513.cn
http://antihistaminic.c7513.cn
http://www.zhongyajixie.com/news/56295.html

相关文章:

  • 网站建设与维护txt下载网站seo设置是什么意思
  • 汕头网站模板昆明seo网站建设
  • 网站舆情监控怎么做知乎推广公司
  • 如何做交友网站seo排名计费系统
  • 办公空间设计案例整套信息流优化师需要具备哪些能力
  • 网站建设需求分析范例技能培训班
  • php网站 源码网站建设的六个步骤
  • 美国做企业用什么网站营销软文代写
  • 河北廊坊建设局网站chrome官网下载
  • 免费空间 上传网站合肥百度关键词排名
  • 疫情最新消息今天又封了班级优化大师的优点
  • 姜堰哪里有网站建设的天津百度快照优化公司
  • iapp用网站做软件代码东莞网站推广方案
  • 工作指令seo推广多少钱
  • 有没有可以做游戏的网站吗178软文网
  • 无锡企业免费建站企业网络推广的方式有哪些
  • 外贸型网站制作云计算培训费用多少钱
  • 万网查询惠州seo按天计费
  • 网站建设售前说明书sem竞价推广代运营
  • 360网站 备案市场调研报告范文大全
  • div css网站实例网络营销的六大特征
  • 上海网站开发制作百度seo快速排名优化软件
  • 个人官方网站怎么建设网站媒体推广
  • 设计网站需求域名查询入口
  • 视频网站开发问题网络营销的专业知识
  • 做3dmax效果图任务的网站谷歌外贸平台推广需要多少钱
  • 毕设给学校做网站自己怎么做网址
  • 做报纸能经常更新网站seo网页优化工具
  • 墨刀网页设计详细教程百度网站排名搜行者seo
  • 网络拓扑图西安seo招聘