HBaseConvetorUtil 实体转换工具类

public class HBaseConvetorUtil {
       /**
   * @Title: convetor
   * @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;
   }
   
   /**
   * @Title: convetor
   * @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;
   }
   
   /**
   * @Title: convetor
   * @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 实体转换工具的更多相关文章

  1. ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5

    摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...

  2. 在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  3. c# 实体处理工具类

    using System; using System.Collections; using System.Collections.Generic; using System.ComponentMode ...

  4. C#.Net实体代码生成工具(EntitysCodeGenerate)的使用及.NET中的ORM实现

    1 引言 目前大多数项目或产品都使用关系型数据库实现业务数据的存储,这样在开发过程中,常常有一些业务逻辑需要直接用写SQL语句实现,但这样开发的结果是:遍地布满SQL语句.这些藕合较高的SQL语句给系 ...

  5. 工具类--BeanUtils----Bean转换工具

    package com.zhouyy.netBank.util; import java.beans.PropertyDescriptor; import java.lang.reflect.Fiel ...

  6. Java实体映射工具MapStruct的使用

    官网地址:http://mapstruct.org/ MapStruct 是一个代码生成器,简化了不同的 Java Bean 之间映射的处理,所谓的映射指的就是从一个实体变化成一个实体.例如我们在实际 ...

  7. mapstruct 实体转换及List转换,@Mapper注解转换

    本文参考 https://blog.csdn.net/u012373815/article/details/88367456 主要是为了自己使用方便查询. 这些都是我平时用到了,大家有什么好方法或者有 ...

  8. 小BUG大原理:FastJSON实体转换首字母小写的尴尬事件

    问题描述 因为项目连接的Oracle数据库,字段名映射方便使用大写,但是通过接口调用返回到前端的字段名首字母为小写,这样带来的问题前端显示的字段就需要写这种很尴尬的格式. 原因分析 开发环境使用的是S ...

  9. Unicode编码解码在线转换工具

    // Unicode编码解码在线转换工具 Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standar ...

随机推荐

  1. 在StatusBar中显示当前时间

    在StatusBar中显示当前时间,如下: 1.在String Table中插入一项 (注意:状态栏将根据字符串的长度来确定相应窗格的缺省宽度,所以指定为00:00:00就为时间的显示预留了空间)   ...

  2. 003.android资源文件剖析(Resources)

    android的资源文件使用的重要性,不言而喻.让我们从潜到深逐渐来了解吧. 一:android的基本资源: 1.字符串资源 android的资源文件保存在:res\values\ 2.布局资源 an ...

  3. Delphi引用C对象文件

    C语言应用非常广泛,并在世界各地拥有大量的代码库.这些代码库与Delphi的可比性较小,因此如果我们无需转换为Delphi代码而可以直接使用这些库的部分代码就完美了.幸运的是,Delphi允许连接到C ...

  4. hnnu 11546 Sum of f(x) (求一个数的全部约数和)

    代码: #include<cstdio> #include<cstring> #define N 200000 using namespace std; long long f ...

  5. WM_SYSCOMMAND消息命令整理 good

    注意:1. 使用WM_SYSCOMMAND时,鼠标的一些消息可能会受到影响,比如不能响应MouseUp事件,可以在窗口中捕获WM_SYSCOMMAND消息,并判断消息的CommandType来判断消息 ...

  6. 简单深刻:为控件创建MouseEnter和MouseLeave事件(覆盖WndProc,增加对消息的处理,真简单!)——连对CM_MOUSEENTER的消息处理都是颇有深意啊!

    其实很简单: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, D ...

  7. 图像编程学习笔记1——bmp文件结构处理与显示

    文本内容转载自<数字图像处理编程入门>,代码为自己实现 1.1图和调色板的概念 如今Windows(3.x以及95,98,NT)系列已经成为绝大多数用户使用的操作系统,它比DOS成功的一个 ...

  8. ZOJ 1654 二分匹配基础题

    题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...

  9. 跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)

    跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)         上面设计好了一个模块的主界面,以下通过菜单命令的运行来把这个模块增加到主界面其中. 在MainModule. ...

  10. Cocos2d-x 3.1.1 lua-tests 开篇

    Cocos2d-x 3.1.1 lua-tests开篇   本篇博客打算从研究Cocos2d-x引擎提供的測试样例来写起,笔者针对Cocos2d-x 3.1.1这个版本号来介绍怎样来学习它给我们提供的 ...