javascript
cassandra_Spring Boot Cassandra的第一步
cassandra
如果您想通過(guò)Spring Boot開(kāi)始使用Cassandra NoSQL數(shù)據(jù)庫(kù),最好的資源可能是此處提供的Cassandra示例以及Spring數(shù)據(jù)Cassandra文檔 。
通過(guò)實(shí)際在本地安裝Cassandra并對(duì)其進(jìn)行基本測(cè)試,我將采取一些繞過(guò)的方式,我的目標(biāo)是在下一篇博客文章中將此示例開(kāi)發(fā)為更全面的示例。
設(shè)置本地Cassandra實(shí)例
您的工作量可能會(huì)有所不同,但是要在本地安裝Cassandra的最簡(jiǎn)單方法是使用此處提供的Cassandra集群管理器(ccm)實(shí)用程序。
ccm create test -v 2.2.5 -n 3 -s或更傳統(tǒng)的方法可能只是從Apache站點(diǎn)下載它。 如果您一直沿用,最適合我的Cassandra版本是2.2.5。
通過(guò)以上兩種方法之一,使用ccm啟動(dòng)Cassandra:
ccm start test或從Apache站點(diǎn)下載:
bin/cassandra -f-f標(biāo)志將使進(jìn)程保持在前臺(tái),一旦完成樣本,以這種方式停止進(jìn)程將非常容易。
現(xiàn)在連接到此Cassandra實(shí)例:
bin/cqlsh并創(chuàng)建一個(gè)示例Cassandra鍵空間:
CREATE KEYSPACE IF NOT EXISTS sample WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};使用Spring Boot Cassandra
與Spring Boot相關(guān)的任何事情,都有一個(gè)啟動(dòng)器可用于拉入Cassandra的所有相關(guān)依賴關(guān)系,在此處指定為gradle依賴關(guān)系:
compile('org.springframework.boot:spring-boot-starter-data-cassandra')這將拉入觸發(fā)與Cassandra相關(guān)的實(shí)例自動(dòng)配置的依賴關(guān)系-主要是一個(gè)Cassandra會(huì)話 。
對(duì)于示例,我定義了一個(gè)名為Hotel的實(shí)體,它通過(guò)以下方式定義:
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數(shù)據(jù)存儲(chǔ)庫(kù)來(lái)管理該實(shí)體:
import cass.domain.Hotel; import org.springframework.data.repository.CrudRepository;import java.util.UUID;public interface HotelRepository extends CrudRepository<Hotel, UUID>{}需要一個(gè)相應(yīng)的cql表來(lái)保存此實(shí)體:
CREATE TABLE IF NOT EXISTS sample.hotels (id UUID,name varchar,address varchar,zip varchar,version int,primary key((id)) );本質(zhì)上就是這樣,對(duì)Cassandra的Spring數(shù)據(jù)支持現(xiàn)在將管理該實(shí)體的所有CRUD操作,并且測(cè)試如下所示:
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回購(gòu)。 這個(gè)示例還沒(méi)有太多,在下一篇博客文章中,我將對(duì)該示例進(jìn)行增強(qiáng),以說(shuō)明以下事實(shí):了解NoSQL系統(tǒng)中整個(gè)集群中的數(shù)據(jù)分布以及此處的Hotel這樣的實(shí)體如何能夠非常重要。為有效的CRUD操作建模。
翻譯自: https://www.javacodegeeks.com/2016/04/first-steps-spring-boot-cassandra.html
cassandra
總結(jié)
以上是生活随笔為你收集整理的cassandra_Spring Boot Cassandra的第一步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 视图中::text_新CalendarF
- 下一篇: tgp电脑版在线登陆(TGP网页)