java cassandra 教程_Java程序操作 Cassandra

1 packagecom.lk.jdbc;2

3

4 importjava.nio.ByteBuffer;5 importjava.util.List;6 importorg.apache.cassandra.thrift.Cassandra;7 importorg.apache.cassandra.thrift.Column;8 importorg.apache.cassandra.thrift.ColumnOrSuperColumn;9 importorg.apache.cassandra.thrift.ColumnParent;10 importorg.apache.cassandra.thrift.ConsistencyLevel;11 importorg.apache.cassandra.thrift.InvalidRequestException;12 importorg.apache.cassandra.thrift.KeyRange;13 importorg.apache.cassandra.thrift.KeySlice;14 importorg.apache.cassandra.thrift.SlicePredicate;15 importorg.apache.cassandra.thrift.SliceRange;16 importorg.apache.thrift.TException;17 importorg.apache.thrift.protocol.TBinaryProtocol;18 importorg.apache.thrift.protocol.TProtocol;19 importorg.apache.thrift.transport.TFramedTransport;20 importorg.apache.thrift.transport.TSocket;21 importorg.apache.thrift.transport.TTransport;22 importorg.apache.thrift.transport.TTransportException;23

24 /**

25 * 使 Java 客户端连接 Cassandra 并进行读写操作26 *@authorAdministrator27 *28 */

29 public classOperationDb {30 public static String keyspace = "demo";31 public static String columnFamily = "users";32 public staticTTransport transport;33 public staticCassandra.Client client;34

35 /**

36 * 建立数据库连接37 */

38 static{39 try{40 transport = new TFramedTransport(new TSocket("localhost", 9160));41 TProtocol protocol = newTBinaryProtocol(transport);42 client = newCassandra.Client(protocol);43 transport.open();44 client.set_keyspace(keyspace);45 } catch(TTransportException e) {46 e.printStackTrace();47 } catch(InvalidRequestException e) {48 e.printStackTrace();49 } catch(TException e) {50 e.printStackTrace();51 }52 }53

54 /**

55 * 关闭数据库连接56 */

57 public static voidclose() {58 if(transport != null &&transport.isOpen()) {59 transport.close();60 }61 }62

63 public ByteBuffer convertByteBuffer(String value) throwsException {64 return ByteBuffer.wrap(value.getBytes("UTF-8"));65 }66

67 /**

68 * 插入数据69 *@throwsException70 */

71 public void insert() throwsException {72 //插入数据

73 long timestamp =System.currentTimeMillis();74

75 Column nameColumn = new Column(convertByteBuffer("name"));76 nameColumn.setValue("Damon".getBytes());77 nameColumn.setTimestamp(timestamp);78

79 Column passwordColumn = new Column(convertByteBuffer("age"));80 passwordColumn.setValue("22".getBytes());81 passwordColumn.setTimestamp(timestamp);82

83 ColumnParent columnParent = newColumnParent(columnFamily);84 client.insert(convertByteBuffer("u2"), columnParent, nameColumn, ConsistencyLevel.ALL);85 client.insert(convertByteBuffer("u2"), columnParent, passwordColumn, ConsistencyLevel.ALL);86 close();87 }88

89 /**

90 * 根据key值获得其对应的columns91 *@paramkey92 *@throwsException93 */

94 public void getColumnByKey(String key) throwsException {95 SlicePredicate predicate = newSlicePredicate();96 predicate.setSlice_range(new SliceRange(ByteBuffer.wrap(new byte[0]), ByteBuffer.wrap(new byte[0]), false, 100));97 ColumnParent columnParent = newColumnParent(columnFamily);98 List columnsByKey =client.get_slice(ByteBuffer.wrap(key.getBytes()), columnParent, predicate, ConsistencyLevel.ALL);99 for(ColumnOrSuperColumn c : columnsByKey) {100 Column column =c.getColumn();101 System.out.println(new String(column.getName(), "UTF-8") + ": " + new String(column.getValue(), "UTF-8"));102 }103 close();104 }105

106 /**

107 * 获取所有columns108 *@throwsException109 */

110 public void getAllKeys() throwsException {111 KeyRange keyRange = new KeyRange(100);112 keyRange.setStart_key(new byte[0]);113 keyRange.setEnd_key(new byte[0]);114 SlicePredicate predicate = newSlicePredicate();115 predicate.setSlice_range(new SliceRange(ByteBuffer.wrap(new byte[0]), ByteBuffer.wrap(new byte[0]), false, 100));116 ColumnParent columnParent = newColumnParent(columnFamily);117 List keySlices =client.get_range_slices(columnParent, predicate, keyRange, ConsistencyLevel.ONE);118 System.out.println(keySlices.size());119 for(KeySlice ks : keySlices) {120 System.out.print(new String(ks.getKey(), "UTF-8") + " {");121 List columnsByKey =ks.getColumns();122 for(ColumnOrSuperColumn c : columnsByKey) {123 Column column =c.getColumn();124 System.out.print(new String(column.getName(), "UTF-8") + " : " + new String(column.getValue(), "UTF-8") + ", ");125 }126 System.out.println("}");127 }128 close();129 }130

131 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值