cassandra入门(一):jdbc连接cassandra作增删改查

简介:

先分享一个最新的cassandra-java-driver文档,点击电子书分享里的链接,找到javaDriver21.pdf。

该文档内容比较全,包含:jdbc连接cassandra集群,执行cql增删改查,批量查询,异步查询,cql的类型和java类型的映射关系及用户自定义类型使用,ORM等。

Cassandra是一个NoSql数据库,纯java编写,apache的顶级项目,主页:http://cassandra.apache.org/(简介不多说网上有)。

入门步骤:(我的jdk版本是1.7.0_71,win7系统)

1.去主页下载cassandra,我下载的是apache-cassandra-2.1.9,然后bin/cassandra.bat启动数据库,如果想使用bin/cqlsh.bat则需要安装python2.7。

2.贴代码

1

2

3

4

5

<dependency>

<groupId>com.datastax.cassandra</groupId>

<artifactId>cassandra-driver-core</artifactId>

<version>2.1.5</version>

</dependency>

SimpleClient:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

package com.zoo;

import com.datastax.driver.core.Cluster;

import com.datastax.driver.core.Host;

import com.datastax.driver.core.Metadata;

import com.datastax.driver.core.ResultSet;

import com.datastax.driver.core.Row;

import com.datastax.driver.core.Session;

/**

*

* @author yankai913@gmail.com

* @date 2015-9-25

*

*/

public class SimpleClient {

private Cluster cluster;

private Session session;

public Session getSession() {

return this.session;

}

/**

* 连接集群,创建执行cql的session对象。

*

* @param node

*/

public void connect(String node) {

cluster = Cluster.builder().addContactPoint(node).build();

Metadata metadata = cluster.getMetadata();

System.out.printf("Connected to cluster: %s\n", metadata.getClusterName());

for (Host host : metadata.getAllHosts()) {

System.out.printf("Datacenter: %s; Host: %s; Rack: %s\n", host.getDatacenter(),

host.getAddress(), host.getRack());

}

session = cluster.connect();

System.out.println();

}

/**

* 创建schema, 创建库:simplex,表:simplex.songs,表:simplex.playlists

*/

public void createSchema() {

session.execute("CREATE KEYSPACE IF NOT EXISTS simplex WITH replication "

+ "= {'class':'SimpleStrategy', 'replication_factor':3};");

session.execute("CREATE TABLE IF NOT EXISTS simplex.songs (" + "id uuid PRIMARY KEY," + "title text,"

+ "album text," + "artist text," + "tags set<text>," + "data blob" + ");");

session.execute("CREATE TABLE IF NOT EXISTS simplex.playlists (" + "id uuid," + "title text,"

+ "album text, " + "artist text," + "song_id uuid,"

+ "PRIMARY KEY (id, title, album, artist)" + ");");

}

/**

* 插入数据

*/

public void loadData() {

session.execute("INSERT INTO simplex.songs (id, title, album, artist, tags) " + "VALUES ("

+ "756716f7-2e54-4715-9f00-91dcbea6cf50," + "'La Petite Tonkinoise',"

+ "'Bye Bye Blackbird'," + "'Joséphine Baker'," + "{'jazz', '2013'})" + ";");

session.execute("INSERT INTO simplex.playlists (id, song_id, title, album,artist) " + "VALUES ("

+ "2cc9ccb7-6221-4ccb-8387-f22b6a1b354d," + "756716f7-2e54-4715-9f00-91dcbea6cf50,"

+ "'La Petite Tonkinoise'," + "'Bye Bye Blackbird'," + "'Joséphine Baker'" + ");");

}

/**

* 查询simplex.songs

*/

public void querySchema() {

ResultSet results2 =

session.execute("SELECT * FROM simplex.songs "

+ "WHERE id = 756716f7-2e54-4715-9f00-91dcbea6cf50;");

for (Row row : results2) {

System.out.println(row.getUUID("id") + "\t" + row.getString("title") + "\t"

+ row.getString("album") + "\t" + row.getString("artist") + "\t"

+ row.getSet("tags", String.class));

}

System.out.println();

}

/**

* 修改simplex.songs

*/

public void updateSchema() {

session.execute("UPDATE simplex.songs set title = 'La Petite Tonkinoise Updated'"

+ " WHERE id = 756716f7-2e54-4715-9f00-91dcbea6cf50;");

}

/**

* 删除simplex.songs

*/

public void deleteSchema() {

session.execute("DELETE FROM simplex.songs " + " WHERE id = 756716f7-2e54-4715-9f00-91dcbea6cf50;");

}

/**

* 删除keyspace,keyspace可以理解成oracle里的schema

*/

public void dropSchema() {

session.execute("DROP KEYSPACE simplex;");

}

public void close() {

session.close();

cluster.close();

}

public static void main(String[] args) {

SimpleClient client = new SimpleClient();

try {

client.connect("127.0.0.1");

client.dropSchema();

client.createSchema();

client.loadData();

System.out.println("before update...");

client.querySchema();

System.out.println("after update...");

client.updateSchema();

client.querySchema();

System.out.println();

client.deleteSchema();

System.out.println("after delete...");

client.querySchema();

System.out.println();

}

catch (Throwable t) {

t.printStackTrace();

}

finally {

client.close();

}

}

}

打印结果:
Connected to cluster: Test Cluster
Datacenter: datacenter1; Host: /127.0.0.1; Rack: rack1

before update…
756716f7-2e54-4715-9f00-91dcbea6cf50 La Petite Tonkinoise Bye Bye Blackbird Joséphine Baker [2013, jazz]

after update…
756716f7-2e54-4715-9f00-91dcbea6cf50 La Petite Tonkinoise Updated Bye Bye Blackbird Joséphine Baker [2013, jazz]

after delete…

下一篇说cassandra的ORM。


相关文章
|
17天前
|
存储 Go API
使用GoFrame连接和操作TDengine时序数据库
通过使用GoFrame框架和TDengine Go驱动,我们可以方便地连接和操作TDengine时序数据库。无论是插入、查询还是分析时序数据,都可以通过简单的API调用来实现。GoFrame提供了强大的Web开发功能,结合TDengine的高性能时序数据存储和查询能力,可以构建高效、可扩展的时序数据应用。
|
21天前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
69 0
|
14天前
|
NoSQL 关系型数据库 PHP
php连接数据库
要使用PHP连接PolarDB或MongoDB数据库,需先准备连接信息,并编写相应代码。对于PolarDB,需设置主机地址、端口、数据库名及凭据,使用`pg_connect`函数建立连接;而对于MongoDB副本集,需安装MongoDB PHP驱动,通过`MongoDB\Client`连接指定的副本集实例。请确保替换示例代码中的占位符为实际值,并正确配置副本集名称和主机信息。更多详细信息与示例代码,请参考相关链接。
125 72
|
7天前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
21天前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
17 7
|
20天前
|
SQL Java OLAP
Hologres 入门:实时分析数据库的新选择
【9月更文第1天】在大数据和实时计算领域,数据仓库和分析型数据库的需求日益增长。随着业务对数据实时性要求的提高,传统的批处理架构已经难以满足现代应用的需求。阿里云推出的 Hologres 就是为了解决这个问题而生的一款实时分析数据库。本文将带你深入了解 Hologres 的基本概念、优势,并通过示例代码展示如何使用 Hologres 进行数据处理。
78 2
|
26天前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
20天前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
40 0
|
20天前
|
SQL 数据库 开发者
|
20天前
|
存储 SQL 数据库
自连接:数据库查询中的镜像技术
【8月更文挑战第31天】
9 0