欢迎投稿

今日深度:

cassandra数据库使用(四)--使用spring data进行数据基本操作,cassandraspring

cassandra数据库使用(四)--使用spring data进行数据基本操作,cassandraspring


一、简介

这一节,将介绍基于spring data对cassandra进行数据的增删改查操作。

二、开发步骤

1、添加maven依赖(spring略过,其版本为5.0.4.RELEASE)

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.32</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.6</version>
</dependency>


<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-mapping</artifactId>
    <version>3.5.0</version>
</dependency>
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-extras</artifactId>
    <version>3.5.0</version>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-cassandra</artifactId>
    <version>2.0.7.RELEASE</version>
</dependency>

2、定义示例对象StuCas.java

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Table("stu")
public class StuCas {
    @PrimaryKey("stu_id")
    private Integer stuId;
    @Column("stu_name")
    private String stuName;

    @Column("teacher_list")
    private List<String> teacherList;
    @Column("course_set")
    private Set<String> courseSet;
    @Column("school")
    private Map<String, String> schoolMap;
    @Column("create_time")
    private Date createTime;

    public StuCas() {
    }


    public StuCas(Integer stuId, String stuName, List<String> teacherList, Set<String> courseSet, Map<String, String> schoolMap) {
        this.stuId = stuId;
        this.stuName = stuName;
        this.teacherList = teacherList;
        this.courseSet = courseSet;
        this.schoolMap = schoolMap;
    }

    public Integer getStuId() {
        return stuId;
    }

    public void setStuId(Integer stuId) {
        this.stuId = stuId;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public List<String> getTeacherList() {
        return teacherList;
    }

    public void setTeacherList(List<String> teacherList) {
        this.teacherList = teacherList;
    }

    public Set<String> getCourseSet() {
        return courseSet;
    }

    public void setCourseSet(Set<String> courseSet) {
        this.courseSet = courseSet;
    }

    public Map<String, String> getSchoolMap() {
        return schoolMap;
    }

    public void setSchoolMap(Map<String, String> schoolMap) {
        this.schoolMap = schoolMap;
    }


    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

注意:1、通过注解@Table指定表名
           2、通过注解@PrimaryKey指定唯一键
           3、通过注解@Column指定列名

3、定义repository类StuCasRepository.java

import com.dragon.study.cassandra.bean.StuCas;
import org.springframework.data.repository.CrudRepository;

public interface StuCasRepository extends CrudRepository<StuCas, Integer> {

    StuCas findByStuName(String stuName);
}

4、定义spring文件spring-cassandra.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:cassandra="http://www.springframework.org/schema/data/cassandra"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/data/cassandra
    http://www.springframework.org/schema/data/cassandra/spring-cassandra.xsd
">


    <!--cassandra的ip和port-->
    <cassandra:cluster id="cassandraCluster" contact-points="192.168.0.1" port="9042"/>
    <!--指定keyspace-->
    <cassandra:session id="cassandraSession" cluster-ref="cassandraCluster" keyspace-name="key_space_1"/>
    <!--指定repository路径-->
    <cassandra:repositories base-package="com.dragon.study.cassandra.repository"/>
    <!--指定bean路径-->
    <cassandra:mapping entity-base-packages="com.dragon.study.cassandra.bean"/>

    <cassandra:template id="cassandraTemplate"/>
    <cassandra:converter id="cassandraConverter"/>

</beans>

5、进行数据的增删除改查(解释请看注释)

import com.dragon.study.cassandra.bean.StuCas;
import com.dragon.study.cassandra.repository.StuCasRepository;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.*;

public class CassandraSpringPaperMain {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring-cassandra.xml");

        //获取repository
        StuCasRepository stuCasRepository = ac.getBean(StuCasRepository.class);

        Map<String, String> schoolMap = new HashMap<>();
        schoolMap.put("schoolId", "001");
        schoolMap.put("schoolName", "第一中学");
        List<String> teacherList = Arrays.asList("张教师", "李教师");
        Set<String> courseSet = new HashSet<>(Arrays.asList("语文", "英语"));

        //插入或更新
        StuCas s1 = new StuCas(1, "apple1", teacherList, courseSet, schoolMap);
        stuCasRepository.save(s1);

        //根据id查找
        StuCas stuCas = stuCasRepository.findById(23).get();
        System.out.println(stuCas);

        //根据stuName查找
        StuCas stu2 = stuCasRepository.findByStuName("apple1");
        System.out.println(stu2);

        //查询所有
        Iterable<StuCas> stuIter1 = stuCasRepository.findAll();
        stuIter1.forEach(System.out::println);

        //根据多个id批量查询
        Iterable<StuCas> stuIter2 = stuCasRepository.findAllById(Arrays.asList(1,2,3));
        stuIter2.forEach(System.out::println);

        //根据id删除
        stuCasRepository.deleteById(2);

        ac.close();
    }
}

 

 

 

 

 








 

www.htsjk.Com true http://www.htsjk.com/cassandra/28552.html NewsArticle cassandra数据库使用(四)--使用spring data进行数据基本操作,cassandraspring 一、简介 这一节,将介绍基于spring data对cassandra进行数据的增删改查操作。 二、开发步骤 1、添加maven依赖 (sprin...
相关文章
    暂无相关文章
评论暂时关闭