/**
* 根据 rowkey删除一条记录
* @param tablename 表名
* @param rowkey 主键
*/
public static void deleteRow(String tablename, String rowkey) {
try {
HTable table = new HTable(configuration, tablename);
List list = new ArrayList();
Delete d1 = new Delete(rowkey.getBytes());
list.add(d1);
table.delete(list);
System.out.println("删除行成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按rowKey查询单条记录
* @param tableName 表名
* @param rowKey 主键
*/
public static void QueryByRowKey(String tableName,String rowKey) {
HTablePool pool = new HTablePool(configuration, 1000);
HTableInterface table = pool.getTable(tableName);
try {
Get scan = new Get(rowKey.getBytes());// 根据rowkey查询
Result r = table.get(scan);
System.out.println("获得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列族:" + new String(keyValue.getFamily())
+ "列:" + new String(keyValue.getQualifier())
+ "====值:" + new String(keyValue.getValue()));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按单个列族单个列单个值查询
* @param tableName 表名
* @param object 列族,列,值
*/
public static void QueryByObject(String tableName,HashMap<String, String> object) {
try {
HTablePool pool = new HTablePool(configuration, 1000);
HTableInterface table = pool.getTable(tableName);
//family 列族
//qualifier 列
//value 值
Filter filter = new SingleColumnValueFilter(Bytes
.toBytes(object.get("family")), Bytes
.toBytes(object.get("qualifier")), CompareOp.EQUAL, Bytes
.toBytes(object.get("value")));
Scan s = new Scan();
s.setFilter(filter);
ResultScanner rs = table.getScanner(s);
for (Result r : rs) {
System.out.println("获得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列族:" + new String(keyValue.getFamily())
+ "列:" + new String(keyValue.getQualifier())
+ "====值:" + new String(keyValue.getValue()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 组合条件查询
* @param tableName 表名
* @param list 多个 列族,列,值
*/
public static void QueryByListObject(String tableName , ArrayList<HashMap<String, String>> list) {
try {
HTablePool pool = new HTablePool(configuration, 1000);
HTableInterface table = pool.getTable(tableName);
List<Filter> filters = new ArrayList<Filter>();
for (HashMap<String, String> object : list) {
Filter filter = new SingleColumnValueFilter(Bytes
.toBytes(object.get("family")), Bytes
.toBytes(object.get("qualifier")), CompareOp.EQUAL, Bytes
.toBytes(object.get("value")));
filters.add(filter);
}
FilterList filterList1 = new FilterList(filters);
Scan scan = new Scan();
scan.setFilter(filterList1);
ResultScanner rs = table.getScanner(scan);
for (Result r : rs) {
System.out.println("获得到rowkey:" + new String(r.getRow()));
for (KeyValue keyValue : r.raw()) {
System.out.println("列族:" + new String(keyValue.getFamily())
+ "列:" + new String(keyValue.getQualifier())
+ "====值:" + new String(keyValue.getValue()));
}
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}