`

Spring repository操作Cassandra

阅读更多

1、定义接口

  通过继承 CrudRepository实现数据的基本操作

public interface PersonRepository extends CrudRepository<Person, String> {
    List<Person> findByNameLike(String name);
}

 2、Cassandra的配置

  继承 AbstractCassandraConfiguration,指定默认的库,并添加EnableCassandraRepositories注解

@Configuration
@EnableCassandraRepositories
public class ApplicatonConfig extends AbstractCassandraConfiguration {
    /**
     * 指定Cassandra数据库
     * @return
     */
    @Override
    protected String getKeyspaceName() {
        return "cycling";
    }

    /**
     * 配置实体bean的扫描路径
     * @return
     */
    @Override
    public String[] getEntityBasePackages() {
        return new String[] { "com.github.theseus.spring.cassandra.domain" };
    }
}

  3、定义实体类,映射表

@Table
public class Person {

    @PrimaryKey
    private String id;
    private String name;
    private Integer age;

    public Person(String id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    // get set方法……
    @Override
    public String toString() {
        return String.format("{ @type = %1$s, id = %2$s, name = %3$s, age = %4$d }",
                getClass().getName(), getId(), getName(), getAge());
    }
}

 4、单元测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ApplicatonConfig.class)
public class ReposityTest {
    @Autowired
    PersonRepository repository;

    @Test //查询所有数据
    public void testReadAll() {
        Iterable<Person> personpIterable = repository.findAll();
        personpIterable.forEach(p -> System.out.println(p.toString()));
    }

    @Test //新增
    public void testCreate() {
        Person p = new Person(UUID.randomUUID().toString(), "theseus", 21);
        repository.save(p);
    }

    @Test //修改,没有的话新增
    public void testUpdate() {
        Person p = new Person("5931583b-39b2-48ac-ba5d-e7b63523a97f", "Jon Doe", 40);
        repository.save(p);
    }

    @Test //批量创建
    public void testBatchCreate() {
        List<Person> personList = new ArrayList<>();
        for (int i=0;i<10;i++) {
            personList.add(new Person(UUID.randomUUID().toString(), "测试" + i, 50 + i));
        }
        repository.saveAll(personList);
    }

    /**
     * 创建SASIIndex索引,以支持模糊查询
     */
    @Test //自定义方法模糊查询
    public void testFind() {
        List<Person> personList = repository.findByNameLike("测试%");
        personList.stream().forEach(p -> System.out.println(p.toString()));
    }

}

  5、结果输出

 

{ @type = com.github.theseus.spring.cassandra.domain.Person, id = 6c05f079-5f2a-4ec0-bf97-7266c7361b87, name = 测试4, age = 54 }
……
……
{ @type = com.github.theseus.spring.cassandra.domain.Person, id = e3f14738-cf8e-47ad-8188-a4e53344b4a2, name = 测试1, age = 51 }

 

6、自定义方法说明

   findBy+"属性"+操作关键字

关键字 说明
After/Before 日期比较,大于、小于参数值
GreaterThan/GreaterThanEqual >、>=
LessThan/LessThanEqual <、<=
In 类似sql中的IN

Like, StartingWith, EndingWith

模糊匹配

Containing on String

字符串包含功能

Containing on Collection

集合包含功能
无关键字 不指定时精确匹配

IsTrue, True/IsFalse, False

Boolean查询

 

7、项目地址

  https://github.com/hjguang/spring-cassandra

0
0
分享到:
评论

相关推荐

    spring boot与cassandra集成,使用JPA方式。

    在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用Java Persistence API (JPA) 进行数据操作。Spring Boot以其简洁的配置和开箱即用的特性,已经成为Java开发中的首选框架之一。而...

    spring boot与cassandra集成,使用原生驱动。

    在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用其原生驱动进行数据操作。Spring Boot以其简化配置和快速启动的特点,深受开发者喜爱,而Cassandra作为分布式NoSQL数据库,广泛用于...

    spring-data-cassandra:当使用Apache Cassandra时,提供支持以提高Java开发人员的工作效率。 使用熟悉的Spring概念,例如用于核心API使用和轻量级存储库样式数据访问的模板类

    例如,只需要定义一个Repository接口,Spring Data Cassandra就能自动提供实现,包括基本的CRUD操作以及基于方法名的查询。这种面向接口的编程方式使得代码更易测试和维护,同时减少了样板代码的编写。 在领域驱动...

    cassandra入门项目源代码

    在项目中,你将学习如何创建Cassandra的数据模型,定义Cassandra的表结构,以及如何使用Spring Data Cassandra的Repository接口来执行CRUD(创建、读取、更新和删除)操作。 Lucene是一个全文搜索引擎库,常被用来...

    spring-jersey-cassandra:Spring Jersey Cassandra集成

    3. 使用CassandraTemplate:Spring Data Cassandra提供了CassandraTemplate,用于执行CRUD操作。我们可以定义Repository接口,Spring Data会自动实现这些接口。 4. 测试连接:通过单元测试验证Cassandra的连接和数据...

    Apache-Cassandra-Spring-Framework-Example:这是有关如何将Apache Cassandra与Spring数据连接的简单示例

    在这个“Apache-Cassandra-Spring-Framework-Example”项目中,我们将探讨如何利用Spring Data Cassandra模块连接到Cassandra数据库并进行数据操作。以下是一些关键知识点: 1. **Spring Data Cassandra**: Spring ...

    SpringDataCassandraExamples:Apache Cassandra示例的Spring数据

    3. **Spring Data Cassandra模块**: Spring Data为Cassandra提供了一个模块,该模块包含了一组Repository接口,允许开发者使用Java方法声明式地执行CRUD(创建、读取、更新、删除)操作。此外,它还提供了Session和...

    Spring Data简介

    1. **Repository抽象**: Spring Data定义了一个通用的Repository接口,只需通过简单的注解,就可以自动生成实现基本数据操作的方法,如增删查改。 2. **Query Derivation**: 根据方法名自动构造查询语句,无需编写...

    spring.zip

    1. **Spring Data**: Spring Data是一个致力于简化数据访问开发的项目,它支持多种数据存储技术,如关系型数据库(JPA、Hibernate)、NoSQL(MongoDB、Cassandra)和图数据库(Neo4j)。Spring Data提供了一致的API...

    spring最基本jar

    9. **Spring Data**:Spring Data是一系列项目,旨在简化数据访问层的开发,支持多种数据存储技术,如JPA、MongoDB、Cassandra等,通过统一的API来操作数据。 10. **Spring Security**:这是一个强大的安全框架,...

    Learning Spring boot 2.0

    Spring Data是Spring Boot中用于数据库操作的强大工具,它简化了与各种数据存储(如JPA、MongoDB、Cassandra等)的交互。通过Repository接口,开发者可以快速实现CRUD操作,而无需编写大量的DAO代码。 Spring ...

    spring-data-commons-1.13.0.RELEAS.zip

    - **Repository抽象**:Spring Data Commons通过定义Repository接口,使得开发者可以声明式地定义数据访问操作,而无需编写具体的DAO层代码。例如,一个简单的`CrudRepository`接口提供了基本的CRUD操作。 - **...

    Spring面试专题及答案

    - Spring Data提供了一种统一的方式来访问各种数据存储,包括JPA、MongoDB、Cassandra等。 - 它简化了CRUD操作,通过Repository接口即可完成对数据的增删改查。 以上是Spring面试中常见的专题和知识点,每个主题...

    Spring与非关系数据库搭配使用

    Spring Data Neo4j的Repository接口则提供了图形数据库操作的便捷方式。 Spring Boot是Spring框架的一个子项目,旨在简化Spring应用的初始搭建以及配置过程。当你添加相应的依赖到Spring Boot项目中,如`spring-...

    spring part 2.1

    1. **Spring Data JPA**:这是Spring Data的一个子项目,它简化了使用Java Persistence API(JPA)的工作,允许开发者通过定义Repository接口来执行CRUD操作,而无需编写大量的DAO代码。 2. **Repository抽象**:...

    springdata的jar包

    - **Repository**:SpringData的主要设计模式,定义了一组用于数据存取的通用操作接口,例如CRUD(创建、读取、更新、删除)操作。通过继承特定的Repository接口,我们可以自动生成实现这些操作的方法。 - **...

    spring 4.2.0完整jar

    4. **数据访问**:Spring Data模块在4.2.0中继续扩展,提供了对更多数据库类型的支持,包括JPA、MongoDB、Cassandra等。同时,Repository接口的增强使得数据访问更加简洁。 5. **Java配置**:Spring 4.2.0进一步...

    spring-data + jedis + redis代码

    4. 使用Spring Data的注解(如@Repository、@EnableRedisRepositories)来定义仓库接口,并让Spring自动实现这些接口,提供对Redis的访问。 在压缩包中的"redis+spring-data"文件可能包含以下内容: - spring配置...

    spring资源库

    6. **Spring Data**:Spring Data提供了一种统一的方式来访问各种数据存储,包括JPA(Java Persistence API)、MongoDB、Cassandra等。它通过Repository接口,使数据库操作变得简单且类型安全。 7. **Spring ...

    spring5.0.2框架包.zip

    - **Spring Data增强**:Spring Data项目进一步扩展,支持更多数据存储技术,如MongoDB、Cassandra等,并提供了更好的查询API。 - **JPA和Hibernate优化**:与持久层框架的整合更加紧密,性能有所提升。 - **安全...

Global site tag (gtag.js) - Google Analytics