码迷,mamicode.com
首页 > 其他好文 > 详细

HBaseConvetorUtil 实体转换工具类

时间:2015-06-12 17:19:20      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:hbase   hadoop   超人学院   

HBaseConvetorUtil 实体转换工具类
public class HBaseConvetorUtil {
       /**
   * @Titleconvetor
   * @Description传入hbase返回结果值,返回实例集合
   * @param
   * @return
   * @throws
    */
   public static <T> List<T>convetor(Class<T> cla,ResultScanner resultScanner) throws Exception{
      List<T> list = new ArrayList<T>();
      for (Result result :resultScanner) {
         Field []fileds=cla.getDeclaredFields();
         T t = cla.newInstance();
         for(Field field:fileds){
field.setAccessible(true);
            String fileName=field.getName();
            if(result.containsColumn(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase()))){
               if(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase())).length==0){
                  continue;
               }
               String value=Bytes.toString(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase())));
               field.set(t, value);
            }
         }
         list.add(t);
      }
      return list;
   }
   
   /**
   * @Titleconvetor
   * @Description传入hbase返回结果值,返回实例
   * @param
   * @return
   * @throws
    */
   public static <T> Tconvetor(Class<T> cla,Result result) throws Exception{
         Field []fileds=cla.getDeclaredFields();
         T t = cla.newInstance();
         for(Field field:fileds){
field.setAccessible(true);
            String fileName=field.getName();
            if(result.containsColumn(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase()))){
               if(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase())).length==0){
                  continue;
               }
               String value=Bytes.toString(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase())));
               field.set(t, value);
            }
         }
      return t;
   }
   
   /**
   * @Titleconvetor
   * @Description传入保存实例和主键ID,返回PutDelete
   * @param
   * @return
   * @throws
    */
   public static <T> PutDeleteconvetor(T t,String id) throws Exception {
      Put put=new Put(Bytes.toBytes(id));
      Delete delete=new Delete(Bytes.toBytes(id));
      Field [] fileds=t.getClass().getDeclaredFields();
      for(Field field:fileds){
          field.setAccessible(true);
         StringfieldName=field.getName();
         Object value =field.get(t);
         if(null==value){
            delete.deleteColumn(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fieldName.toUpperCase()));
            continue;
         }
         put.add(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fieldName.toUpperCase()), Bytes.toBytes((String)value));
      }
      PutDelete putdelete = new PutDelete();
      putdelete.setPut(put);
      putdelete.setDelete(delete);
      return putdelete;
   }
      
}

更多精彩内容请关注:http://bbs.superwu.cn
关注超人学院微信二维码:技术分享

HBaseConvetorUtil 实体转换工具类

标签:hbase   hadoop   超人学院   

原文地址:http://blog.csdn.net/crxy2014/article/details/46473109

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!