博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Data 官方文档》Reference Documentation至5.2. Examples Repository
阅读量:7297 次
发布时间:2019-06-30

本文共 3815 字,大约阅读时间需要 12 分钟。

文档结构

参考文档的这一部分讲解Spring Data Cassandra所提供的核心功能.

 介绍 Cassandra 模块特性设置。

 介绍 Cassandra 所支持的资源。

5. Cassandra 支持

Cassandra 包含了非常广泛的特性, 其总结如下

  • Spring配置支持Cassandra驱动的实例类和副本集使用基于Java的@Configuration类或XML命名空间。

  • CassandraTemplate帮助程序类,可提高执行常用Cassandra操作的生产率。包括CQL表和POJO之间的完整对象映射。

  • 将异常翻译到Spring的可移植性数据访问异常层次体系中去

  • 与Spring转换服务集成的特性丰富的对象映射

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

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

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

  • 自动实现Repository接口,包括支持自定义finder方法。

对于大多数任务,您会发现自己在使用’CassandraTemplate’或Repository支持时,这两者都利用了丰富的映射功能。CassandraTemplate是寻找访问功能(例如递增计数器或点对点CRUD操作)的所在。CassandraTemplate还提供了回调方法,以便于您轻松获取低级API工件,如“com.datastax.driver.core.Session”,以便与Cassandra直接通信。对各类API工件上进行命名约定的目的是复制基础DataStax Java驱动程序中的这些约定,以便您可以轻松地将现有知识与Spring API对应起来。

5.1. 入门

Spring Data Cassandra使用DataStax Java Driver版本2.X,它支持DataStax Enterprise 4 / Cassandra 2.0和Java SE 6或更高版本。推荐最新的商业版本(本文用2.X)。一个简单的设置引导工作环境的方法是在 中创建一个基于Spring的项目。

首先,您需要设置一台Cassandra服务器,让它处于运行起来。

在STS上创建一个Spring项目, 步骤是 File → New → Spring Template Project → Simple Spring Utility Project → 按 Yes 然后确认。然后输入项目和包名称,如org.spring.cassandra.example。

然后将以下内容添加到pom.xml的dependencies中。

org.springframework.data
spring-data-cassandra
1.0.0.RELEASE

还可以在pom.xml中更改Spring的版本

3.2.8.RELEASE

您还需要将maven的Spring Milestone存储库的位置添加到与您的pom.xml位于同一级别的 元素

spring-milestone
Spring Maven MILESTONE Repository
http://repo.spring.io/libs-milestone

这个资源库同样也可在浏览。

创建一个简单的持久化的 Employee 类

package org.spring.cassandra.example;import org.springframework.data.cassandra.mapping.PrimaryKey;import org.springframework.data.cassandra.mapping.Table;@Tablepublic class Person { @PrimaryKey private String id; private String name; private int age; public Person(String id, String name, int age) {  this.id = id;  this.name = name;  this.age = age; } public String getId() {  return id; } public String getName() {  return name; } public int getAge() {  return age; } @Override public String toString() {  return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; }}

然后在main application中去运行

package org.spring.cassandra.example;import java.net.InetAddress;import java.net.UnknownHostException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.data.cassandra.core.CassandraOperations;import org.springframework.data.cassandra.core.CassandraTemplate;import com.datastax.driver.core.Cluster;import com.datastax.driver.core.Session;import com.datastax.driver.core.querybuilder.QueryBuilder;import com.datastax.driver.core.querybuilder.Select;public class CassandraApp { private static final Logger LOG = LoggerFactory.getLogger(CassandraApp.class); private static Cluster cluster; private static Session session; public static void main(String[] args) {  try {   cluster = Cluster.builder().addContactPoints(InetAddress.getLocalHost()).build();   session = cluster.connect("mykeyspace");   CassandraOperations cassandraOps = new CassandraTemplate(session);   cassandraOps.insert(new Person("1234567890", "David", 40));   Select s = QueryBuilder.select().from("person");   s.where(QueryBuilder.eq("id", "1234567890"));   LOG.info(cassandraOps.queryForObject(s, Person.class).getId());   cassandraOps.truncate("person");  } catch (UnknownHostException e) {   e.printStackTrace();  } }}

即使在这个简单的例子中,也有一些事情值得注意。

  • 您可以使用从Cluster派生的Cassandra会话创建CassandraTemplate的实例。

  • 您必须将您的POJO作为Cassandra添加 @Table注解,并注解@PrimaryKey。 您还可以覆盖这些映射名称以匹配你的Cassandra数据库表以及列名。

  • 你可以使用CQL语句, 或者DataStax QueryBuilder来构造查询语句.

5.2. 示例资源库

在Spring Data Cassandra 1.0.0的初始发布之后,我们将开始使用运行在一个示例库上的完整示例。

转载自 

你可能感兴趣的文章
将网站项目转为 Web form应用程序(转)
查看>>
泛型简要原理
查看>>
poj 1254 Hansel and Grethel
查看>>
VirtualBox安装CentOS7
查看>>
Java豆瓣电影爬虫——抓取电影详情和电影短评数据
查看>>
如何让程序在后台执行
查看>>
bzoj3296[USACO2011 Open] Learning Languages*
查看>>
关于浮动元素对父元素高度的影响
查看>>
Mysql 关键字的优先级 分组 多表联查
查看>>
java 调用js
查看>>
iOS开发UI篇—Quartz2D使用(图形上下文栈)
查看>>
Oracle迁移MySQL笔记
查看>>
Building a Pub/Sub Message Bus with Wcf,Msmq,IIS
查看>>
Mybatis实现批量删除
查看>>
【leetcode】995. Minimum Number of K Consecutive Bit Flips
查看>>
【洛谷 P4886】 快递员 (点分治)
查看>>
在Ajax中将数组转换成字符串(0517-am)
查看>>
hive字符串函数
查看>>
【erlang ~ 4 days】 Day # 1.2 Sequential Programming
查看>>
HDFS Erasure Coding介绍
查看>>