hbase2.1.x java put添加数据

上接:hbase2.1.x java 创建工程

步骤

  1. 获取table对象
  2. 创建put对象,对应put命令,封装rowkey、列族、列名、列值
  3. 通过table对象执行put命令
  4. 关闭table

添加一列

代码

/**
 * 添加数据,只能添加一个列、值
 * @param tableName
 * @param rowKey
 * @param columnFamily
 * @param column
 * @param value
 * @throws IOException
 */
public void put(String tableName,String rowKey,String columnFamily,String column,String value) throws IOException {
    //获取table对象
    Table table = conn.getTable(TableName.valueOf(tableName));
    //创建put对象,对应put命令,封装rowkey、列族、列名、列值
    Put put = new Put(Bytes.toBytes(rowKey));
    put.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));
    //执行put命令
    table.put(put);
    //关闭table
    table.close();
}

测试

hu.put("book","1000","c1","title","java从入门到放弃");

添加多列

注意: 价格 转成字符串再保存,原因点击

/**
 * 添加数据,可以添加多个列、值
 * @param tableName
 * @param rowKey
 * @param columnFamily
 * @param columnValue
 * @throws IOException
 */
public void put(String tableName,String rowKey,String columnFamily,Map<String,String> columnValue) throws IOException {
    //获取table对象
    Table table = conn.getTable(TableName.valueOf(tableName));
    //创建put对象,对应put命令,封装rowkey、列族、列名、列值
    Put put = new Put(Bytes.toBytes(rowKey));

    Set<Map.Entry<String, String>> set = columnValue.entrySet();
    for(Map.Entry<String, String> entry : set) {
        String column=entry.getKey();
        String value=entry.getValue();
        put.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(value));
    }
    //执行put命令
    table.put(put);
    //关闭table
    table.close();
}

测试

Map map=new HashMap();
map.put("title","Html从小白到大神");
map.put("author","李雷");
map.put("price","125.00"); //注意价格格式,是字符串比较
hu.put("book","1001","c1",map);

查看数据

在 hbase shell 中执行下面命令:

scan 'book',{FORMATTER => 'toString'}

原文出处:/show_1IX1wV9gkBx6.html