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
|
>、>= |
LessThanEqual
|
<、<= |
In |
类似sql中的IN |
|
模糊匹配 |
|
字符串包含功能 |
|
集合包含功能 |
无关键字 |
不指定时精确匹配 |
|
Boolean查询 |
7、项目地址
相关推荐
在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用Java Persistence API (JPA) 进行数据操作。Spring Boot以其简洁的配置和开箱即用的特性,已经成为Java开发中的首选框架之一。而...
在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用其原生驱动进行数据操作。Spring Boot以其简化配置和快速启动的特点,深受开发者喜爱,而Cassandra作为分布式NoSQL数据库,广泛用于...
例如,只需要定义一个Repository接口,Spring Data Cassandra就能自动提供实现,包括基本的CRUD操作以及基于方法名的查询。这种面向接口的编程方式使得代码更易测试和维护,同时减少了样板代码的编写。 在领域驱动...
在项目中,你将学习如何创建Cassandra的数据模型,定义Cassandra的表结构,以及如何使用Spring Data Cassandra的Repository接口来执行CRUD(创建、读取、更新和删除)操作。 Lucene是一个全文搜索引擎库,常被用来...
3. 使用CassandraTemplate:Spring Data Cassandra提供了CassandraTemplate,用于执行CRUD操作。我们可以定义Repository接口,Spring Data会自动实现这些接口。 4. 测试连接:通过单元测试验证Cassandra的连接和数据...
在这个“Apache-Cassandra-Spring-Framework-Example”项目中,我们将探讨如何利用Spring Data Cassandra模块连接到Cassandra数据库并进行数据操作。以下是一些关键知识点: 1. **Spring Data Cassandra**: Spring ...
3. **Spring Data Cassandra模块**: Spring Data为Cassandra提供了一个模块,该模块包含了一组Repository接口,允许开发者使用Java方法声明式地执行CRUD(创建、读取、更新、删除)操作。此外,它还提供了Session和...
1. **Repository抽象**: Spring Data定义了一个通用的Repository接口,只需通过简单的注解,就可以自动生成实现基本数据操作的方法,如增删查改。 2. **Query Derivation**: 根据方法名自动构造查询语句,无需编写...
1. **Spring Data**: Spring Data是一个致力于简化数据访问开发的项目,它支持多种数据存储技术,如关系型数据库(JPA、Hibernate)、NoSQL(MongoDB、Cassandra)和图数据库(Neo4j)。Spring Data提供了一致的API...
9. **Spring Data**:Spring Data是一系列项目,旨在简化数据访问层的开发,支持多种数据存储技术,如JPA、MongoDB、Cassandra等,通过统一的API来操作数据。 10. **Spring Security**:这是一个强大的安全框架,...
Spring Data是Spring Boot中用于数据库操作的强大工具,它简化了与各种数据存储(如JPA、MongoDB、Cassandra等)的交互。通过Repository接口,开发者可以快速实现CRUD操作,而无需编写大量的DAO代码。 Spring ...
- **Repository抽象**:Spring Data Commons通过定义Repository接口,使得开发者可以声明式地定义数据访问操作,而无需编写具体的DAO层代码。例如,一个简单的`CrudRepository`接口提供了基本的CRUD操作。 - **...
- Spring Data提供了一种统一的方式来访问各种数据存储,包括JPA、MongoDB、Cassandra等。 - 它简化了CRUD操作,通过Repository接口即可完成对数据的增删改查。 以上是Spring面试中常见的专题和知识点,每个主题...
Spring Data Neo4j的Repository接口则提供了图形数据库操作的便捷方式。 Spring Boot是Spring框架的一个子项目,旨在简化Spring应用的初始搭建以及配置过程。当你添加相应的依赖到Spring Boot项目中,如`spring-...
1. **Spring Data JPA**:这是Spring Data的一个子项目,它简化了使用Java Persistence API(JPA)的工作,允许开发者通过定义Repository接口来执行CRUD操作,而无需编写大量的DAO代码。 2. **Repository抽象**:...
- **Repository**:SpringData的主要设计模式,定义了一组用于数据存取的通用操作接口,例如CRUD(创建、读取、更新、删除)操作。通过继承特定的Repository接口,我们可以自动生成实现这些操作的方法。 - **...
4. **数据访问**:Spring Data模块在4.2.0中继续扩展,提供了对更多数据库类型的支持,包括JPA、MongoDB、Cassandra等。同时,Repository接口的增强使得数据访问更加简洁。 5. **Java配置**:Spring 4.2.0进一步...
4. 使用Spring Data的注解(如@Repository、@EnableRedisRepositories)来定义仓库接口,并让Spring自动实现这些接口,提供对Redis的访问。 在压缩包中的"redis+spring-data"文件可能包含以下内容: - spring配置...
6. **Spring Data**:Spring Data提供了一种统一的方式来访问各种数据存储,包括JPA(Java Persistence API)、MongoDB、Cassandra等。它通过Repository接口,使数据库操作变得简单且类型安全。 7. **Spring ...
- **Spring Data增强**:Spring Data项目进一步扩展,支持更多数据存储技术,如MongoDB、Cassandra等,并提供了更好的查询API。 - **JPA和Hibernate优化**:与持久层框架的整合更加紧密,性能有所提升。 - **安全...