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

一、简介

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

二、开发步骤

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


    com.alibaba
    fastjson
    1.2.32


    org.apache.commons
    commons-lang3
    3.6




    com.datastax.cassandra
    cassandra-driver-core
3.5.0


    com.datastax.cassandra
    cassandra-driver-mapping
    3.5.0


    com.datastax.cassandra
    cassandra-driver-extras
    3.5.0



    org.springframework.data
    spring-data-cassandra
    2.0.7.RELEASE

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 teacherList;
    @Column("course_set")
    private Set courseSet;
    @Column("school")
    private Map schoolMap;
    @Column("create_time")
    private Date createTime;

    public StuCas() {
    }


    public StuCas(Integer stuId, String stuName, List teacherList, Set courseSet, Map 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 getTeacherList() {
        return teacherList;
    }

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

    public Set getCourseSet() {
        return courseSet;
    }

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

    public Map getSchoolMap() {
        return schoolMap;
    }

    public void setSchoolMap(Map 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 findByStuName(String stuName);
}

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





    
    
    
    
    
    
    
    

    
    

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 schoolMap = new HashMap<>();
        schoolMap.put("schoolId", "001");
        schoolMap.put("schoolName", "第一中学");
        List teacherList = Arrays.asList("张教师", "李教师");
        Set 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 stuIter1 = stuCasRepository.findAll();
        stuIter1.forEach(System.out::println);

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

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

        ac.close();
    }
}

 

 

 

 

 








 

你可能感兴趣的:(spring,大数据)