一、需求
平台需要将大数据量的表放入Cassandra数据库内,在这里记录一下Springboot整合Cassandra的简单过程。
二、整合
1、引入依赖
我使用的是Springboot提供的starter再加一个data-jpa
<!-- cassandra依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2、配置文件
spring:
# cassandra配置
data:
cassandra:
contact-points: 192.168.2.2 #数据库集群的IP数组
port: 9042
keyspace-name: hello_ca #数据库的名称
username: cassandra #Cassandra默认的用户名
password: cassandra #Cassandra默认的密码
session-name: Test Cluster
local-datacenter: datacenter1 #默认的数据中心
3、创建一个简单的实体类
这里就不多说了,变量名要与数据库中列名一致。
@Table("test_user")
@Data
public class TestUser {
@PrimaryKey
private Integer id;
private String user_name;
private String password;
}
4、创建dao
我这里继承了CrudRepository,泛型中第一个是你定义的实体类,第二个是主键的类型。
public interface TestUserRecordRepository extends CrudRepository<TestUser, Integer> {
List<TestUser> findAllById(Integer id);
}
5、测试
测试插入1000条数据,插入1000条数据花费了1s。
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class CassandraTest {
@Autowired
TestUserRecordRepository testUserRecordRepository;
@Test
public void test() {
log.info("开始准备数据");
List<TestUser> list = new ArrayList<>();
for (int i = 1; i < 1000; i++) {
TestUser testUser = new TestUser();
testUser.setId(i);
testUser.setUser_name("zhang"+i);
testUser.setPassword("123456");
list.add(testUser);
}
log.info("准备数据完毕");
log.info("开始插入数据");
testUserRecordRepository.saveAll(list);
log.info("插入数据完毕");
log.info("插入"+testUserRecordRepository.count()+"数据成功");
}
}