/**
* Company
* Copyright (C) 2014-2017 All Rights Reserved.
*/
package com.bootcwenao.bigdataserver.hbase.mapper.impl;
import com.bootcwenao.bigdataserver.hbase.domain.pojo.UserInfo;
import com.bootcwenao.bigdataserver.hbase.handler.HbaseFindBuilder;
import com.bootcwenao.bigdataserver.hbase.mapper.HbaseAccountInfoMapper;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.hadoop.hbase.HbaseTemplate;
import org.springframework.data.hadoop.hbase.RowMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author cwenao
* @version $Id HbaseAccountInfoMapperImpl.java, v 0.1 2017-02-21 21:14 cwenao Exp $$
*/
@Repository("hbaseAccountInfoMapperImpl")
public class HbaseAccountInfoMapperImpl implements HbaseAccountInfoMapper {
@Autowired
private HbaseTemplate hbaseTemplate;
public UserInfo findUserInfoByEntity(String table, String family, String rowKey, UserInfo userInfo) {
return (UserInfo) hbaseTemplate.get(table, rowKey, family,
(result, rowNum) -> new HbaseFindBuilder<>(family, result, userInfo.getClass()).build("userName","age","id").fetch());
}
@Override
public List<UserInfo> findAll(String tablename, String family) {
byte[] cf_info = family.getBytes();
byte[] age_info = Bytes.toBytes("age");
byte[] id_info = Bytes.toBytes("id");
byte[] username_info = Bytes.toBytes("userName");
return hbaseTemplate.find(tablename, family, new RowMapper<UserInfo>() {
@Override
public UserInfo mapRow(Result result, int rowNum) throws Exception {
UserInfo u = new UserInfo();
u.setId(Bytes.toString(result.getValue(cf_info,id_info)));
u.setUserName(Bytes.toString(result.getValue(cf_info,username_info)));
u.setAge(Bytes.toInt(result.getValue(cf_info,age_info)));
return u;
}
});
}
}