cassandra

如果您想通过Spring Boot开始使用Cassandra NoSQL数据库,最好的资源可能是此处提供的Cassandra示例以及Spring数据Cassandra文档 。

通过实际在本地安装Cassandra并对其进行基本测试,我将采取一些绕过的方式,我的目标是在下一篇博客文章中将此示例开发为更全面的示例。

设置本地Cassandra实例

您的工作量可能会有所不同,但是要在本地安装Cassandra的最简单方法是使用此处提供的Cassandra集群管理器(ccm)实用程序。

ccm create test -v 2.2.5 -n 3 -s

或更传统的方法可能只是从Apache站点下载它。 如果您一直沿用,最适合我的Cassandra版本是2.2.5。

通过以上两种方法之一,使用ccm启动Cassandra:

ccm start test

或从Apache站点下载:

bin/cassandra -f

-f标志将使进程保持在前台,一旦完成样本,以这种方式停止进程将非常容易。

现在连接到此Cassandra实例:

bin/cqlsh

并创建一个示例Cassandra键空间:

CREATE KEYSPACE IF NOT EXISTS sample WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

使用Spring Boot Cassandra

与Spring Boot相关的任何事情,都有一个启动器可用于拉入Cassandra的所有相关依赖关系,在此处指定为gradle依赖关系:

compile('org.springframework.boot:spring-boot-starter-data-cassandra')

这将拉入触发与Cassandra相关的实例自动配置的依赖关系-主要是一个Cassandra会话 。

对于示例,我定义了一个名为Hotel的实体,它通过以下方式定义:

package cass.domain;import org.springframework.data.cassandra.mapping.PrimaryKey;
import org.springframework.data.cassandra.mapping.Table;import java.io.Serializable;
import java.util.UUID;@Table("hotels")
public class Hotel implements Serializable {private static final long serialVersionUID = 1L;@PrimaryKeyprivate UUID id;private String name;private String address;private String zip;private Integer version;public Hotel() {}public Hotel(String name) {this.name = name;}public UUID getId() {return id;}public String getName() {return this.name;}public String getAddress() {return this.address;}public String getZip() {return this.zip;}public void setId(UUID id) {this.id = id;}public void setName(String name) {this.name = name;}public void setAddress(String address) {this.address = address;}public void setZip(String zip) {this.zip = zip;}public Integer getVersion() {return version;}public void setVersion(Integer version) {this.version = version;}}

和Spring数据存储库来管理该实体:

import cass.domain.Hotel;
import org.springframework.data.repository.CrudRepository;import java.util.UUID;public interface HotelRepository extends CrudRepository<Hotel, UUID>{}

需要一个相应的cql表来保存此实体:

CREATE TABLE IF NOT EXISTS  sample.hotels (id UUID,name varchar,address varchar,zip varchar,version int,primary key((id))
);

本质上就是这样,对Cassandra的Spring数据支持现在将管理该实体的所有CRUD操作,并且测试如下所示:

import cass.domain.Hotel;
import cass.repository.HotelRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.UUID;import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SampleCassandraApplication.class)
public class SampleCassandraApplicationTest {@Autowiredprivate HotelRepository hotelRepository;@Testpublic void repositoryCrudOperations() {Hotel sample = sampleHotel();this.hotelRepository.save(sample);Hotel savedHotel = this.hotelRepository.findOne(sample.getId());assertThat(savedHotel.getName(), equalTo("Sample Hotel"));this.hotelRepository.delete(savedHotel);}private Hotel sampleHotel() {Hotel hotel = new Hotel();hotel.setId(UUID.randomUUID());hotel.setName("Sample Hotel");hotel.setAddress("Sample Address");hotel.setZip("8764");return hotel;}}

这是此示例的github回购。 这个示例还没有太多,在下一篇博客文章中,我将对该示例进行增强,以说明以下事实:了解NoSQL系统中整个集群中的数据分布以及此处的Hotel这样的实体如何能够非常重要。为有效的CRUD操作建模。

翻译自: https://www.javacodegeeks.com/2016/04/first-steps-spring-boot-cassandra.html

cassandra

cassandra_Spring Boot Cassandra的第一步相关推荐

  1. Spring Boot Cassandra的第一步

    如果您想通过Spring Boot开始使用Cassandra NoSQL数据库,最好的资源可能是此处提供的Cassandra示例和Spring数据Cassandra文档 . 在这里,我将采取一些绕过的 ...

  2. 学习java第一步_Spring Boot 学习第一步(搭建初步环境)

    学习一个东西的第一步是要学会如何迅速搭建起来一个可用的环境,也就是demo.这里我选择的开发环境是Eclipse, Maven + Spring Web 项目结构在Eclipse下面的实现 我们在这里 ...

  3. Spring Boot 学习第一步(搭建初步环境)

    学习一个东西的第一步是要学会如何迅速搭建起来一个可用的环境,也就是demo.这里我选择的开发环境是Eclipse, Maven + Spring Web 项目结构在Eclipse下面的实现 我们在这里 ...

  4. Lesson 11.1-11.5 梯度下降的两个关键问题反向传播的原理走出第一步:动量法开始迭代:batch和epochs在Fashion—MNIST数据集熵实现完整的神经网络

    在之前的课程中,我们已经完成了从0建立深层神经网络,并介绍了各类神经网络所使用的损失函数.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具A ...

  5. Linux开机启动过程(2):内核启动的第一步

    在内核安装代码的第一步 本文是在原文基础上经过本人的修改. 内核启动的第一步 在上一节中我们开始接触到内核启动代码,并且分析了初始化部分,最后我们停在了对main函数(main函数是第一个用C写的函数 ...

  6. idea springboot activities集成第一步

    最近偶然间有在学习流程的一些东西,想把它集成到一个开发平台,就再次对activiti进行了一些尝试,在配置的过程中,走了很多弯路,大道至简,最后简化到只是增加两个包.调整简单的一个配置就可以实现相关数 ...

  7. 【Rust 日报】2021-08-29 Embedded Rust 第一步:选择一块板子

    Embedded Rust 第一步:选择一块板子 内容整理自 robyoung (Rob Young) 的文章:First steps with Embedded Rust: Selecting a ...

  8. 使用myeclipse的第一步

    使用myeclipse的第一步 将以下代码copy放在一个包中运行,然后在控制台输入任意字符,回车,然后控制台打印一串密匙,这里你输入的就是账号,控制台返回的就是注册码,点击MyEclipse-> ...

  9. python安装包_迈出Python学习第一步:Python开发环境的下载与安装

    所谓"磨刀不误砍柴工"."工欲善其事,必先利其器",都在告诉我们一个道理:要做好一个事情,事先做好充分的准备工作是非常重要的.所以在我们正式学习用Python编 ...

最新文章

  1. centos 7安装 navicat
  2. SAP WM MIGO移动类型311转库过账后WM层面产生了Posting Change Notice?
  3. html4视频测试方法,3.4 处理视频 - HTML5 Canvas 实战
  4. 排序命令: sort, wc, uniq
  5. Kubernetes API 聚合开发汇总
  6. Java SecurityManager checkAwtEventQueueAccess()方法与示例
  7. 和每个人密切相关的人工智能的应用
  8. 线程导入大数据入库_大数据处理及分析该怎么做?用这款数据分析软件轻松搞定...
  9. C++设计模式详解之外观模式解析
  10. WP7 Tip:改变启动页
  11. Java虚拟机(三)——类文件结构
  12. Codevs 1794 修剪花卉
  13. CCF201612-1 中间数(解法三)(100分)(废除!!!)
  14. mysql utf-8转utf8mb4_MySQL UTF8 转为 utf8mb4
  15. C4D如何将界面和参数设置快速恢复到默认值?
  16. Substance Designer中Histogram相关节点理解
  17. excel自动排班表_最火8套建筑工程测量计算表,傻瓜式操作,自动计算出结果,速领...
  18. 华为V8手机USB OTG Type-C接口数据线
  19. 模拟一个类似LinkedList的集合
  20. Java中的Properties属性集合

热门文章

  1. [2020.11.26NOIP模拟赛]询问【字符串hash】
  2. A*,IDA*—高档次的暴搜
  3. 2021牛客暑期多校训练营5 G-Greater Integer, Better LCM(暴力+子集dp)
  4. 【DP】Bovine Genetics G(P7152)
  5. 【Trie】阅读理解(luogu 3879/ybtoj Trie-4)
  6. 【二分】Distinct
  7. Cube Or 北方大学生训练赛
  8. SpringCloud Zuul(三)之常见用法
  9. SpringBoot @Resource注入的坑
  10. JavaFX UI控件教程(十)之Scroll Bar