java 板


LINE

小弟依旧不材,始终改写不出我想要的程式码 (努力看参考资料到半夜还是不会,我好弱.....Orz) 但放弃就是代表我认输,还是要上来发问解惑! 希望有高手的写法能帮助我,让我效法你的高超程式能力........ ---------------------------参考:Thrift Example JAVA----------------------- package com.test; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.util.List; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.Column; import org.apache.cassandra.thrift.ColumnOrSuperColumn; import org.apache.cassandra.thrift.ColumnParent; import org.apache.cassandra.thrift.ColumnPath; import org.apache.cassandra.thrift.ConsistencyLevel; import org.apache.cassandra.thrift.InvalidRequestException; import org.apache.cassandra.thrift.NotFoundException; import org.apache.cassandra.thrift.SlicePredicate; import org.apache.cassandra.thrift.SliceRange; import org.apache.cassandra.thrift.TimedOutException; import org.apache.cassandra.thrift.UnavailableException; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; public class WriteData { public static void main(String[] args) throws TException, InvalidRequestException, UnavailableException, UnsupportedEncodingException, NotFoundException, TimedOutException { //client 连线设定 TTransport tr = new TFramedTransport(new TSocket("localhost", 9160)); TProtocol proto = new TBinaryProtocol(tr); Cassandra.Client client = new Cassandra.Client(proto); tr.open(); String key_user_id = "1"; //row_key值 // insert data line 39~65 long timestamp = System.currentTimeMillis(); //keyspace1=keyspace_name 如同Excel案名称(workbook) client.set_keyspace("keyspace1"); //test=column_family_name 如同 Excel内的分页名称(sheekname) ColumnParent parent = new ColumnParent("test"); //column_family_name //insert 一笔资料:name、age Column nameColumn = new Column(toByteBuffer("name")); //column_field_name nameColumn.setValue(toByteBuffer("Chris Goffinet")); //column_field_value nameColumn.setTimestamp(timestamp); /* * cassandra-cli insert * >>set column_family_name [row_key] [column_name] ='value'; */ client.insert(toByteBuffer(key_user_id), parent, nameColumn, ConsistencyLevel.ONE); Column ageColumn = new Column(toByteBuffer("age")); //column_field_name ageColumn.setValue(toByteBuffer("24")); //column_field_value ageColumn.setTimestamp(timestamp); client.insert(toByteBuffer(key_user_id), parent, ageColumn, ConsistencyLevel.ONE); ColumnPath path = new ColumnPath("test"); // read single column path.setColumn(toByteBuffer("name")); System.out.println(client.get(toByteBuffer(key_user_id), path, ConsistencyLevel.ONE)); /* * path.setColumn(toByteBuffer("age")); * System.out.println(client.get(toByteBuffer(key_user_id), path, ConsistencyLevel.ONE)); */ //row read entire SlicePredicate predicate = new SlicePredicate(); SliceRange sliceRange = new SliceRange(toByteBuffer(""), toByteBuffer(""), false, 10); predicate.setSlice_range(sliceRange); List<ColumnOrSuperColumn> results = client.get_slice(toByteBuffer(key_user_id), parent, predicate, ConsistencyLevel.ONE); for (ColumnOrSuperColumn result : results) { Column column = result.column; System.out.println(toString(column.name) + " -> " + toString(column.value)); } tr.close(); } public static ByteBuffer toByteBuffer(String value) throws UnsupportedEncodingException { return ByteBuffer.wrap(value.getBytes("UTF-8")); } public static String toString(ByteBuffer buffer) throws UnsupportedEncodingException { byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); return new String(bytes, "UTF-8"); } } -------------------------------------我的问题--------------------------------- 假如Excel内有5笔资料(自己建立的测试资料);rows=5,column=2 而上面程式码是将写入的资料先写在程式码内来进行插入(name、age) 其中row_key(=key_user_id)是唯一值,我有想过用回圈来改变它 让每次插入一笔完整资料(设定row_key初始值1)後,下一笔row_key=row_key+1 但它写法是String的方式,我试着改用int就失败了。(不符合它的toByteBuffer用法) Q:我要如何改写上述程式才能将我要的Excel的资料依序的汇入资料库, 且每笔row_key值不会相同? (有写一个Java 读取Excel的程式,不知道是否有需要PO上来看) 我想学会这个方法跟观念,求高手详细些写法,让我这新手更加进步(恳求您教我) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.218.68
1F:→ brandonron:我的"材"打错了,抱歉! "材→才" 07/24 18:49
2F:→ brandonron:不知道文章是否违版规,若有请告知我,我会改善 07/24 18:53
3F:推 wannawanna:我觉得你的问题跟excel和cassandra没太大关系... 07/24 19:38
4F:→ wannawanna:key_user_id用int递增 insert之前再转成字串应该就好了 07/24 19:41
5F:→ realmeat:String.valueOf() 拿去配 07/24 21:39
6F:→ brandonron:太感谢W大的方法,我会这个使用方法了,谢谢!! 07/24 21:59
7F:→ brandonron:和realmeat大提供的方法,感谢! 07/24 22:15
8F:→ brandonron:目前还在努力怎抓到资料後再汇入资料库的程式写法.... 07/24 22:18
9F:→ brandonron:突然写的灵感一直涌现,感觉快成功了....(通灵了!) 07/24 22:33
10F:→ brandonron:我写出来了!真开心...很感谢各位的帮助! 07/25 03:03







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP