1、创建表
public static void createTable(String tableName,String[] rowName) throws IOException {
if(admin.tableExists(TableName.valueOf(tableName))){//该表已经存在
admin.disableTable(TableName.valueOf(tableName));
admin.deleteTable(TableName.valueOf(tableName));
System.out.println(tableName+" 已经删除!");
}else{//表不存在
HTableDescriptor desc=new HTableDescriptor(TableName.valueOf(tableName));
for(String cf:rowName){
desc.addFamily(new HColumnDescriptor(cf));
}
admin.createTable(desc);
}
}
2、删除表
public static void deleteTable(String tableName) throws IOException {
TableName name=TableName.valueOf(tableName);
if(admin.tableExists(name)){//表存在
admin.disableTable(name);
admin.deleteTable(name);
}else{//表不存在
System.out.println("表不存在");
}
}
3、增加数据/修改数据
public static void addTableData(String tableName,String rowKey,String cf,String cn,String value) throws IOException {
Table table=connection.getTable(TableName.valueOf(tableName));
Put put=new Put(Bytes.toBytes(rowKey));
put.addColumn(Bytes.toBytes(cf),Bytes.toBytes(cn),Bytes.toBytes(value));
table.put(put);
table.close();
}
添加:
修改:
4、删除数据
public static void deleteTableData(String tableName,String rowKey,String cf,String cn) throws IOException {
Table table=connection.getTable(TableName.valueOf(tableName));
Delete delete=new Delete(Bytes.toBytes(rowKey));
delete.addColumn(Bytes.toBytes(cf),Bytes.toBytes(cn));
table.delete(delete);
table.close();
}
5、查询数据
public static void scanTableData(String tableName,String startRow,String stopRow) throws IOException {
Table table=connection.getTable(TableName.valueOf(tableName));
Scan scan=new Scan(Bytes.toBytes(startRow),Bytes.toBytes(stopRow));
ResultScanner resultScanner=table.getScanner(scan);
for(Result result:resultScanner){
showRowData(result);
}
table.close();
}
public static void showRowData(Result result){
Cell[] cells=result.rawCells();//遍历数组
for(Cell cell:cells){
String rk=Bytes.toString(CellUtil.cloneRow(cell));
String cf=Bytes.toString(CellUtil.cloneFamily(cell));
String cn=Bytes.toString(CellUtil.cloneQualifier(cell));
String vl=Bytes.toString(CellUtil.cloneValue(cell));
System.out.println("rowKey: "+rk+" family: "+cf+" qualifier: "+cn+" value: "+vl);
}
}