安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Spring认证中国教育管理中心ApacheCassandr

4月8日 小米粒投稿
  9。8。1。实例化CassandraTemplate
  CassandraTemplate应该始终配置为Springbean,尽管我们之前展示了一个示例,您可以在其中直接实例化它。但是,因为我们假设了创建Spring模块的上下文,所以我们假设存在Spring容器。
  有两种方法可以获取aCassandraTemplate,具体取决于您加载Spring的方式ApplicationContext:自动装配Bean查找ApplicationContext自动装配
  您可以将a自动装配CassandraOperations到您的项目中,如以下示例所示:AutowiredprivateCassandraOperationscassandraO
  同所有的Spring自动装配,这是假定只有一种类型的豆CassandraOperations中ApplicationContext。如果您有多个CassandraTemplatebean(如果您在同一个项目中使用多个键空间就是这种情况),那么您可以使用Qualifier注释来指定要自动装配的bean。AutowiredQualifier(keyspaceOneTemplateBeanId)privateCassandraOperationscassandraOBean查找ApplicationContext
  您还可以CassandraTemplate从中查找beanApplicationContext,如以下示例所示:CassandraOperationscassandraOperationsapplicationContext。getBean(cassandraTemplate,CassandraOperations。class);9。9。保存、更新和删除行
  CassandraTemplate为您提供了一种简单的方法来保存、更新和删除域对象并将这些对象映射到Cassandra中管理的表。9。9。1。类型映射
  SpringDataforApacheCassandra依赖于DataStaxJava驱动程序CodecRegistry来确保类型支持。随着类型的添加或更改,ApacheCassandra模块的SpringData继续运行而无需更改。有关当前类型映射矩阵,请参阅CQL数据类型和数据映射和类型转换。9。9。2。插入和更新行的方法
  CassandraTemplate有几种方便的方法来保存和插入您的对象。要对转换过程进行更细粒度的控制,您可以Converter使用MappingCassandraConverter(例如,ConverterRow,Person)注册Spring实例。
  插入和更新操作的区别在于INSERT操作不插入null值。
  使用该INSERT操作的简单案例是保存一个POJO。在这种情况下,表名由简单的类名(而不是完全限定的类名)确定。可以使用映射元数据覆盖存储对象的表。
  插入或更新时,id必须设置该属性。ApacheCassandra无法生成ID。
  以下示例使用保存操作并检索其内容:
  示例64。使用CassandraTemplateimportstaticorg。springframework。data。cassandra。core。query。Criteria。importstaticorg。springframework。data。cassandra。core。query。Query。PersonbobnewPerson(Bob,33);cassandraTemplate。insert(bob);PersonqueriedBobcassandraTemplate。selectOneById(query(where(age)。is(33)),Person。class);
  您可以使用以下操作进行插入和保存:voidinsert(ObjectobjectToSave):在ApacheCassandra表中插入对象。WriteResult插入(ObjectobjectToSave,InsertOptionsoptions):在ApacheCassandra表中插入对象并应用InsertOptions。
  您可以使用以下更新操作:voidupdate(ObjectobjectToSave):更新ApacheCassandra表中的对象。WriteResult更新(ObjectobjectToSave,UpdateOptionsoptions):更新ApacheCassandra表中的对象并应用UpdateOptions。
  您还可以使用老式的方式编写自己的CQL语句,如下例所示:StringcqlINSERTINTOperson(age,name)VALUES(39,Bob);cassandraTemplate()。getCqlOperations()。execute(cql);
  您还可以在使用InsertOptions和时配置其他选项,例如TTL、一致性级别和轻量级事务UpdateOptions。我的行插入到哪个表中?
  您可以通过两种方式管理用于对表进行操作的表名。默认表名是更改为以小写字母开头的简单类名。因此,com。example。Person类的一个实例将存储在person表中。第二种方式是在Table注解中指定表名。批量插入、更新和删除单个对象
  Cassandra协议支持使用批处理在一个操作中插入一组行。
  CassandraTemplate接口中的以下方法支持此功能:batchOps:创建一个新CassandraBatchOperations的填充批次。
  CassandraBatchOperationsinsert:接受单个对象、数组(varargs)或Iterable要插入的对象。update:接受单个对象、数组(varargs)或Iterable要更新的对象。delete:接受单个对象、数组(varargs)或Iterable要删除的对象。withTimestamp:对批次应用TTL。execute:执行批处理。9。9。3。更新表中的行
  对于更新,您可以选择更新多行。
  以下示例显示了通过向具有分配的余额添加一次性50。00美元奖金来更新单个帐户对象:
  示例65。使用更新行CasandraTemplateimportstaticorg。springframework。data。cassandra。core。query。Criteria。importorg。springframework。data。cassandra。core。query。Qimportorg。springframework。data。cassandra。core。query。UbooleanappliedcassandraTemplate。update(Query。query(where(id)。is(foo)),Update。create()。increment(balance,50。00),Account。class);
  除了Query前面讨论的之外,我们还通过使用Update对象来提供更新定义。该Update班有匹配可用的ApacheCassandra的更新任务,从而方法。
  大多数方法返回Update对象以提供用于代码样式目的的流畅API。对行执行更新的方法
  update方法可以更新行,如下:booleanupdate(Queryquery,Updateupdate,C?entityClass):更新ApacheCassandra表中的对象选择。Update类的方法
  本Update类可以用一点点语法糖被使用,因为它的方法是为了链接在一起。此外,您可以使用静态Update方法publicstaticUpdateupdate(Stringkey,Objectvalue)和使用静态导入来启动新实例的创建。
  该Update班有以下方法:AddToBuilder添加到(StringcolumnName)AddToBuilder入口点:更新prepend(Objectvalue):使用更新分配将集合值预先添加到现有集合。更新prependAll(Objectvalues):使用更新分配将所有集合值添加到现有集合中。更新append(Objectvalue):使用更新分配将集合值附加到现有集合。更新append(Objectvalues):使用更新分配将所有集合值附加到现有集合。更新entry(Objectkey,Objectvalue):使用更新分配添加地图条目。更新addAll(M?extendsObject,?extendsObjectmap):使用更新分配将所有地图条目添加到地图。Updateremove(StringcolumnName,Objectvalue):使用更新分配从集合中删除值。Updateclear(StringcolumnName):清除集合。Updateincrement(StringcolumnName,Numberdelta):使用更新分配进行更新。Updatedecrement(StringcolumnName,Numberdelta):使用更新分配进行更新。Updateset(StringcolumnName,Objectvalue):使用更新分配进行更新。SetBuilder设置(StringcolumnName)SetBuilder入口点:更新atIndex(intindex)。to(Objectvalue):使用更新分配将给定索引处的集合设置为一个值。更新atKey(Stringobject)。to(Objectvalue):将给定键处的映射条目设置为更新分配的值。
  以下清单显示了一些更新示例:UPDATESETkeySpringDUpdate。update(key,SpringData)UPDATESETkey〔5〕SpringDUpdate。empty()。set(key)。atIndex(5)。to(SpringData);UPDATESETkeykey〔Spring,DATA〕;Update。empty()。addTo(key)。appendAll(Spring,Data);
  请注意,Update一旦创建,它就是不可变的。调用方法会创建新的不可变(中间)Update对象。9。9。4。删除行的方法
  您可以使用以下重载方法从数据库中删除对象:boolean删除(Queryquery,C?entityClass):删除由选择的对象Query。Tdelete(Tentity):删除给定的对象。Tdelete(Tentity,QueryOptionsqueryOptions):删除给定的对象应用QueryOptions。booleandeleteById(Objectid,C?entityClass):使用给定的Id删除对象。9。9。5。乐观锁定
  该Version注释在Cassandra的上下文中提供类似于JPA的语法,并确保更新仅应用于具有匹配版本的行。乐观锁利用Cassandra的轻量级事务来有条件地插入、更新和删除行。因此,INSERT语句是在IFNOTEXISTS条件下执行的。对于更新和删除,版本属性的实际值被添加到UPDATE条件中,这样如果在此期间另一个操作更改了行,则修改不会产生任何影响。在这种情况下,OptimisticLockingFailureException会抛出an。以下示例显示了这些功能:TableclassPerson{IdSSSVersionL}Persondaenerystemplate。insert(newPerson(Daenerys));Persontmptemplate。findOne(query(where(id)。is(daenerys。getId())),Person。class);daenerys。setLastname(Targaryen);template。save(daenerys);template。save(tmp);throwsOptimisticLockingFailureException
  最初插入文档。version设置为0。
  加载刚刚插入的文档。version还在0。
  用更新文档version0。将lastname和设置version为1。
  尝试更新先前加载的文档,但仍有version0。操作失败并显示OptimisticLockingFailureException,因为当前version是1。
  乐观锁定仅支持单实体操作,不支持批处理操作。9。10。查询行
  你可以表达使用您的查询Query和Criteria类别,其中有反映本地卡桑德拉谓词运营商名称,如方法名lt,lte,is,等。
  在Query和Criteria类遵循流畅API风格,让您可以轻松地串联多个方法标准和查询在一起,同时具有易于理解的代码。在Java中创建Query和Criteria实例时使用静态导入以提高可读性。9。10。1。查询表中的行
  在前面的部分中,我们看到了如何使用selectOneByIdon方法检索单个对象CassandraTemplate。这样做会返回单个域对象。我们还可以查询要作为域对象列表返回的行集合。假设我们有许多Person名称和年龄值作为行存储在表中的对象,并且每个人都有一个帐户余额,我们现在可以使用以下代码运行查询:
  示例66。查询行使用CassandraTemplateimportstaticorg。springframework。data。cassandra。core。query。Criteria。importstaticorg。springframework。data。cassandra。core。query。Query。ListPersonresultcassandraTemplate。select(query(where(age)。is(50))。and(where(balance)。gt(1000。00d))。withAllowFiltering(),Person。class);
  的select,selectOne和stream方法采取一个Query对象作为参数。此对象定义用于执行查询的条件和选项。该标准是通过使用一个Criteria对象来指定的,该对象具有一个名为where实例化新Criteria对象的静态工厂方法。我们建议对org。springframework。data。cassandra。core。query。Criteria。whereand使用静态导入Query。query,以使查询更具可读性。
  此查询应返回Person满足指定条件的对象列表。的Criteria类有下列方法,对应于运营商的Apache卡桑德拉提供:Criteria类的方法CriteriaDefinitiongt(Objectvalue):使用运算符创建条件。CriteriaDefinitiongte(Objectvalue):使用运算符创建条件。CriteriaDefinitionin(Objectvalues):通过IN对varargs参数使用运算符来创建条件。CriteriaDefinitionin(C?collection):通过使用IN集合的运算符创建条件。CriteriaDefinitionis(Objectvalue):通过使用字段匹配(columnvalue)创建条件。CriteriaDefinitionlt(Objectvalue):使用运算符创建条件。CriteriaDefinitionlte(Objectvalue):使用运算符创建条件。CriteriaDefinitionlike(Objectvalue):使用LIKE运算符创建条件。CriteriaDefinitioncontains(Objectvalue):使用CONTAINS运算符创建条件。CriteriaDefinitioncontainsKey(Objectkey):使用CONTAINSKEY运算符创建条件。
  Criteria一经创建即不可变。Query类的方法
  本Query类有一些额外的方法,你可以用它来提供的查询选项:Queryby(CriteriaDefinitioncriteria):用于创建Query对象。Query和(CriteriaDefinitioncriteria):用于向查询添加附加条件。Querycolumns(Columnscolumns):用于定义要包含在查询结果中的列。Querylimit(longlimit):用于将返回结果的大小限制为提供的限制(用于分页)。QuerypageRequest(PageablepageRequest):用于关联Sort,PagingState以及fetchSize与查询(用于寻呼)。QuerypagingState(ByteBufferpagingState):用于将aByteBuffer与查询关联(用于分页)。QueryqueryOptions(QueryOptionsqueryOptions):用于QueryOptions与查询关联。Querysort(Sortsort):用于为结果提供排序定义。QuerywithAllowFiltering():用于呈现ALLOWFILTERING查询。
  Query一经创建即不可变。调用方法会创建新的不可变(中间)Query对象。9。10。2。查询行的方法
  本Query类有以下方法,返回行:Listselect(Queryquery,ClassentityClass):T从表中查询类型的对象列表。TselectOne(Queryquery,ClassentityClass):T从表中查询单个类型的对象。Sliceslice(Queryquery,ClassentityClass):通过从表中查询aSliceof类型的对象来开始或继续分页T。Streamstream(Queryquery,ClassentityClass):T从表中查询类型对象的流。Listselect(Stringcql,ClassentityClass):T通过提供CQL语句对表中类型对象列表的临时查询。TselectOne(Stringcql,ClassentityClass):T通过提供CQL语句对表中的单个类型对象进行临时查询。Streamstream(Stringcql,ClassentityClass):T通过提供CQL语句对表中类型的对象流进行临时查询。
  查询方法必须指定T返回的目标类型。9。10。3。流畅的模板API
  CassandraOperations当涉及到与ApacheCassandra的更底层交互时,该接口是核心组件之一。它提供了广泛的方法。您可以为每个方法找到多个重载。它们中的大多数涵盖了API的可选(可为空)部分。
  FluentCassandraOperations为CassandraOperations提供更易读、更流畅的API的常用方法提供更窄的接口。入口点(query()、insert()、update()和delete())遵循基于要执行的操作的自然命名方案。从入口点开始,该API旨在仅提供依赖于上下文的方法,引导开发人员使用调用实际CassandraOperation。以下示例显示了流畅的API:ListSWCharacterallops。query(SWCharacter。class)。inTable(starwars)。all();
  如果使用类名SWCharacter定义表名Table或使用类名作为表名没有问题,请跳过此步骤。
  如果Cassandra中的一个表包含不同类型的实体,例如Jedi在一个Tableof中的实体SWCharacters,则可以使用不同的类型来映射查询结果。您可以使用as(C?targetType)将结果映射到不同的目标类型,同时query(C?entityType)仍然适用于查询和表名。以下示例使用query和as方法:ListJediallops。query(SWCharacter。class)。as(Jedi。class)。matching(query(where(jedi)。is(true)))。all();
  查询字段根据SWCharacter类型进行映射。
  结果行被映射到Jedi。
  您可以直接应用于预测由仅提供以产生的文件interface通过类型as(C?)。
  终止方法(first(),one(),all(),和stream())处理检索单个实体和检索多个实体之间的切换List或Stream类似操作。
  新流利的模板API方法(即query(。。),insert(。。),update(。。)和delete(。。))使用有效线程安全的支持对象组成的CQL语句。然而,它带来了额外的年轻代JVM堆开销的额外成本,因为设计基于各种CQL语句组件的最终字段和变异构造。在可能插入或删除大量对象时(例如在循环内部),您应该小心。
  内容来源:Spring中国教育管理中心(Spring认证)
  2021年2月,VMware公司正式与北京中科卓望网络科技有限公司(以下简称:中科卓望)达成战略合作,授予其Spring中国教育管理中心,携手VMware全球最新Spring技术和认证体系,帮助中国院校构建专业教学内容,全面赋能未来开发人
  spring认证java码农
投诉 评论 转载

7400MBs,比快更快!铠侠SE10PCIe4。0SSD评目前支持PCIe4。0的主板和处理器也越来越多了,对游戏玩家、专业设计师和视频创作者来说,自然是越新越快的硬件能够大大提升处理速度和生产力,如果你装机的时候选择了PCIe4。0……孩子想吃零食不要出去买了,在家做经济实惠干净又卫生,孩子爱吃大家好这里是小慧说美食,你家孩子是不是特别喜欢吃零食,但是外面卖的总感觉不健康,接下来小慧分享给大家七款在家就可以做的小零食,经济实惠干净又卫生,大人小孩都喜欢吃,简单易学快按……美国通胀高烧不退,消费者信心跌至16个月新低当地时间6月28日,世界大型企业联合会公布数据显示,美国6月消费者信心指数从5月的103。2进一步下降至98。7,创2021年2月以来最低水平,反映出居高不下的通胀水平已对美国……乒乓球全锦赛林高远王曼昱混双夺冠新华社湖北黄石11月9日电(记者乐文婉、徐鹏航)9日晚,在湖北省黄石市举行的全国乒乓球锦标赛决出混双冠军。圆满组合林高远王曼昱在先丢一局的情况下,以4:2击败王楚钦孙颖莎,摘得……庆国庆新诗作者:温军巨变赞新中国伟大成就温军从巍峨东岳到西藏珠穆朗玛,千山皆喜;从浩瀚南海到北国乌苏里江,万水同欢。神州大地歌声如潮,赞颂建国以来伟大……马布里成功续约!北控男篮确定补强,瞄准前国手后卫和超级外援在雅尼斯辞职后,CBA联赛中就只剩下最后一名外籍主教练了,他就是北控男篮主帅马布里。不过按照媒体北京青年报透露的消息,马布里和北控男篮的合同也即将到期。在和马布里的续约问题上,……长寿湖之恋有幸生活在长寿,总有看不够的山清水秀,说不尽的人杰地灵。图片来源湖畔影视工作室黄草峡遥望滚滚大江东流去,明月山顶踏雪寻梅吟诗篇,菩提山万寿天梯看人文,长寿湖浩渺烟波……荣耀为什么悄无声息的就登上了销量第一?当国产手机品牌在这热辣的夏天接连不断发布新机时,很容易给人一种错觉:越抛头露面的品牌越能在出货量、销量、市场占有率上拔得头衔。这些厂商不管是在营销方面还是在发布的产品方面……新疆自驾驰骋千万里,穿拂自由天地间在六月,在盛夏,在这般热烈而又灿烂的时节,总要有一场旅行,去实现心中的梦。一场自驾游、一场走走停停的搭帐露营、驰骋在北疆草原、迈进远方的自由梦境。从南通转成都,从成都飞伊……Zara们中国大败退的真相图片来源视觉中国文商隐社,作者灵竹,编辑齐马近日,有不少用户在小红书、大众点评上奔走相告GAP的撤店信息,北京、上海、广州、南京等多地的GAP门店正在清仓甩卖,进入……夏日出行大海大钦岛游记一溪一流千江水,东临碣石看渔归。海阔安有龙门跃,天高何来鹊桥堆?白门楼前诛吕布,长坂桥头误张飞。男儿肩抗家国事,难得相逢酒一杯!转眼间,此去经年,砣矶岛……Spring认证中国教育管理中心ApacheCassandr9。8。1。实例化CassandraTemplateCassandraTemplate应该始终配置为Springbean,尽管我们之前展示了一个示例,您可以在其中直接实例……
即将发布的一加11到底有何看点?一文帮你盘点清楚被人民网点名批评的明星,大多数已退圈,关晓彤杜海涛还在活跃FCFS,SJF以及PSA进程调度算法的比较荣耀80官宣,11月23日见,网友这个设计真灵动股民心凉了!发行价168元,上市一年跌了将近180元吃下奉贤的一整个秋天几乎零差评的4款电视盒子,覆盖高中低档次,入手绝对不亏深挖潜力催热露营经济8GB内存对Mac来说够用吗?奔四奔五的女人,还是穿膝下裙最优雅显瘦,看陈数就知道了全国新增试点首票市场采购贸易落地新疆人民币破七,逼近上次低点,该恐惧还是淡定房企越大死的越快新中国早期作家稿酬揭秘:靠出书赚高薪回迁房产权多少年有什么依据?地下车位出租标准合同学会与这个世界打交道读后感春节吃撑了怎么办个消食法狂吃也不怕中国最美的旅游景点介绍精品难忘的中秋节作文800字4篇小米MIX5再次泄密200W快充16GB高运存,坐稳机皇之位象棋易学难精,有什么方法提高?小学作文开学了200字三篇毛晓彤被离异父亲索要5000万,为什么父母生孩子不需要持证上

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利