主要用到HTable的put、delete、get等方法
详见下面代码
public class HBaseTestCase {
static Configuration cfg=null;
static {
//默认加载classpath目录下的文件
cfg=HBaseConfiguration.create();
//cfg.addResource("ch2/hbase-site2.xml");
}
public static void creatTable(String tablename) throws Exception {
HBaseAdmin admin = new HBaseAdmin(cfg);
if (admin.tableExists(tablename)) {
System.out.println("table Exists!!!");
}
else{
HTableDescriptor tableDesc = new HTableDescriptor(tablename);
tableDesc.addFamily(new HColumnDescriptor("basic_info"));
admin.createTable(tableDesc);
System.out.println("create table ok .");
}
}
public static void addData (String tablename) throws Exception{
HTable table = new HTable(cfg, tablename);
//添加1 row1 basic_info:name zhangLi ts默认
//Put put=new Put("row1".getBytes());
//put.add("basic_info".getBytes(),"name".getBytes(),"zhangLi".getBytes());
//添加2 row2 basic_info:name xuhao ts默认
KeyValue kv=new KeyValue("row2".getBytes(),"basic_info".getBytes(),"name".getBytes(),"xuhao".getBytes());
Put put=new Put("row2".getBytes());
put.add(kv);
table.put(put);
System.out.println("add data ok .");
}
public static void getData(String tableName) throws IOException{
HTable table=new HTable(cfg,tableName);
Get get=new Get("row1".getBytes());
Result rs=table.get(get);
String value=new String(rs.getValue("basic_info".getBytes(), "name".getBytes()));
System.out.println(value);
//out:zhangLi
}
public static void getAllData (String tablename) throws Exception{
HTable table = new HTable(cfg, tablename);
Scan s = new Scan();
ResultScanner rs = table.getScanner(s);
for(Result r:rs){
for(KeyValue kv:r.raw()){
System.out.print(new String(kv.getRow())+" ");
System.out.print(new String(kv.getFamily())+" ");
System.out.print(new String(kv.getQualifier())+" ");
System.out.print(String.valueOf(kv.getTimestamp())+" ");
System.out.println(new String(kv.getValue()));
}
}
//out:row1 basic_info name 1387520120966 zhangLi
//row2 basic_info name 1387521140007 xuhao
}
public static void deleteData(String tablename) throws IOException{
HTable table = new HTable(cfg, tablename);
Delete delete =new Delete("row1".getBytes());
//指定列,若不指定,则会删除整行
delete.deleteColumn("basic_info".getBytes(), "name".getBytes());
table.delete(delete);
System.out.println("delete data ok .");
}
public static void main (String [] agrs) {
try {
String tablename="teacher";
//HBaseTestCase.creatTable(tablename);
//HBaseTestCase.addData(tablename);
HBaseTestCase.getAllData(tablename);
//HBaseTestCase.getData(tablename);
//HBaseTestCase.deleteData(tablename);
}
catch (Exception e) {
e.printStackTrace();
}
}
}