美文网首页
SpringBoot整合JPA访问Cassandra数据库

SpringBoot整合JPA访问Cassandra数据库

作者: i_cyy | 来源:发表于2019-01-23 14:04 被阅读73次

1.Cassandra3.x.x+Python2.7.3 Windows安装

1.1 请确保JDK的版本比较新,Cassandra需要更高的jdk版本支持,这里使用当前最新的版本1.8.0_144;

1.2 安装Cassandra需要先安装Python,对于Python的版本有特殊的要求,不支持3.x版本,只支持2.x版本,这里使用的是2.7.3,安装之后请配置一下环境变量,为了确保兼容,最好也使用2.7.3版本(安装文件直接去官网找Windows版本的即可);

1.3 安装Cassandra3.11.0(apache-cassandra-3.11.0) 直接去官网下载apache-cassandra-3.11.0-bin.tar.gz文件即可;

1.4 配置Python和Cassandra的环境变量,很简单,百度即可,就和配置JDK的环境变量类似;

检验环境是否配置好的标志就是,cmd命令直接输入 python
能够显示Python对应版本

image
cmd 输入 cassandra 能够直接启动数据库,数据库启动成功后,可以再开一个cmd,输入 cqlsh命令,能进入数据库;

2. 创建一个SpringBoot项目,具体代码实例可以看我码云:

https://gitee.com/cyy_cloud/springboot-cassandra-jpa-integrations#springboot-cassandra-jpa-integrations

3. 利用Devcenter访问数据库,新建的连接地址 127.0.0.1,即可连接数据库;

image

4.在Devcenter或者 cqlsh中执行以下CQL,创建一个Schema:

CREATE KEYSPACE test WITH REPLICATION = { 'class': 'SimpleStrategy', 'replication_factor': 1};

建好后可以看到:


image

5.执行建表语句:

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

CREATE TABLE IF NOT EXISTS  sample.hotels_by_letter (
    first_letter varchar,
    hotel_name varchar,
    hotel_id UUID,
    address varchar,
    state varchar,
    zip varchar,
    primary key((first_letter), hotel_name, hotel_id)
);


CREATE MATERIALIZED VIEW sample.hotels_by_state AS
SELECT id, name, address, state, zip FROM hotels
WHERE state IS NOT NULL AND id IS NOT NULL AND name IS NOT NULL
PRIMARY KEY ((state), id)
WITH CLUSTERING ORDER BY (name DESC);

6.运行项目,然后用PostMan测试,具体测试内容可以参考代码Controller代码。

小结:

总的来说还比较简单,注意安装的Cassandra选择3.x.x版本,Python版本选择2.7.x,中间碰到的一个坑就是,需要在启动类中注解改成:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
目的是不让SpringBoot 自动配置数据库,否则会报错"Failed to configure a DataSource: 'url' attribute is not specified and no embedde"

相关文章

网友评论

      本文标题:SpringBoot整合JPA访问Cassandra数据库

      本文链接:https://www.haomeiwen.com/subject/lcsjjqtx.html