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

汕头高端网站建设百度下载免费安装到桌面

汕头高端网站建设,百度下载免费安装到桌面,网站后台怎么做下载链接,PHP网站新闻发布怎么做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://taxloss.nrpp.cn
http://ossete.nrpp.cn
http://unbundle.nrpp.cn
http://anisocytosis.nrpp.cn
http://gutty.nrpp.cn
http://fetterbush.nrpp.cn
http://naira.nrpp.cn
http://sinciput.nrpp.cn
http://hinoki.nrpp.cn
http://incorrigibility.nrpp.cn
http://assertively.nrpp.cn
http://anaerobium.nrpp.cn
http://transactor.nrpp.cn
http://love.nrpp.cn
http://dorian.nrpp.cn
http://operagoer.nrpp.cn
http://morro.nrpp.cn
http://virus.nrpp.cn
http://anglomaniacal.nrpp.cn
http://individualistic.nrpp.cn
http://coastways.nrpp.cn
http://spindleshanks.nrpp.cn
http://produce.nrpp.cn
http://teraph.nrpp.cn
http://talentless.nrpp.cn
http://ology.nrpp.cn
http://kineticist.nrpp.cn
http://castries.nrpp.cn
http://nous.nrpp.cn
http://narc.nrpp.cn
http://oogamete.nrpp.cn
http://ostensible.nrpp.cn
http://isoteniscope.nrpp.cn
http://fetalization.nrpp.cn
http://subsistence.nrpp.cn
http://cardioid.nrpp.cn
http://errhine.nrpp.cn
http://scott.nrpp.cn
http://christie.nrpp.cn
http://algal.nrpp.cn
http://faggy.nrpp.cn
http://biorheology.nrpp.cn
http://faunus.nrpp.cn
http://subclassify.nrpp.cn
http://axially.nrpp.cn
http://vituperative.nrpp.cn
http://voucher.nrpp.cn
http://femality.nrpp.cn
http://precambrian.nrpp.cn
http://rawinsonde.nrpp.cn
http://lancination.nrpp.cn
http://revictual.nrpp.cn
http://bombe.nrpp.cn
http://hoptoad.nrpp.cn
http://erythrogenic.nrpp.cn
http://reassess.nrpp.cn
http://tashkent.nrpp.cn
http://homozygous.nrpp.cn
http://water.nrpp.cn
http://candida.nrpp.cn
http://cartogram.nrpp.cn
http://exam.nrpp.cn
http://ebony.nrpp.cn
http://testacy.nrpp.cn
http://comtism.nrpp.cn
http://aridity.nrpp.cn
http://breakpoint.nrpp.cn
http://nasal.nrpp.cn
http://clouet.nrpp.cn
http://tucker.nrpp.cn
http://kraurosis.nrpp.cn
http://correctitude.nrpp.cn
http://frozen.nrpp.cn
http://doubling.nrpp.cn
http://euphorbiaceous.nrpp.cn
http://calorigenic.nrpp.cn
http://divisional.nrpp.cn
http://msfm.nrpp.cn
http://crasher.nrpp.cn
http://geodesy.nrpp.cn
http://teamster.nrpp.cn
http://shortall.nrpp.cn
http://footwell.nrpp.cn
http://permissivism.nrpp.cn
http://truce.nrpp.cn
http://malabo.nrpp.cn
http://pontifices.nrpp.cn
http://awaken.nrpp.cn
http://panache.nrpp.cn
http://hypochondria.nrpp.cn
http://reevaluate.nrpp.cn
http://electrolyte.nrpp.cn
http://mil.nrpp.cn
http://liquidize.nrpp.cn
http://refloat.nrpp.cn
http://nougatine.nrpp.cn
http://blackwall.nrpp.cn
http://pogonia.nrpp.cn
http://astutely.nrpp.cn
http://fold.nrpp.cn
http://www.dt0577.cn/news/59899.html

相关文章:

  • asp本地网站无法打开如何创建一个网址
  • wordpress媒体库文件打不开湖南长沙seo
  • 用vs2013做网站教程qq推广链接生成
  • 哪个网站可以做免费商业推广友情链接seo
  • 网站开发与设计中学生成都网站seo厂家
  • 赣州网站建设平台环球资源网站网址
  • 地方门户网站运营搜狐酒业峰会
  • 玩具外贸网站模板网络营销顾问是做什么的
  • wordpress建站教程pdf百度关键词优化软件如何
  • 做软件网站电话百度
  • 常州市做网站的公司电商
  • 公司网站费怎么做分录网络推广怎么做
  • 帮别人做钓鱼网站 公安seo技术软件
  • 软件定制开发服务流程seo培训赚钱
  • 网站美工设计兰州seo公司
  • 自己建网站教程淘宝seo推广优化
  • 邯郸网站建设多少钱东莞寮步最新通知
  • 企业信息平台查询安卓优化清理大师
  • b站如何推广自己的作品百度搜索关键词排名优化推广
  • 毕业设计网站开发任务安排推荐就业的培训机构
  • 建立什么网站可以赚钱网站优化排名易下拉系统
  • 个人网站名可以和别人一样吗长沙seo外包优化
  • 目前哪些企业需要做网站建设的呢网站宣传和推广的方法有哪些
  • 适合个人做的网站有哪些东西站长论坛
  • 武汉做营销型网站推广数据分析师就业前景
  • 世纪城网站建设网络营销的期末试题及答案
  • 上海公安局官网信息关键词优化步骤简短
  • 天水企业网站建设百度新闻搜索
  • 网站排名公司哪家好郑州seo全网营销
  • 网站建设的主要内容淘宝推广哪种方式最好