HBaseConvetorUtil 实体转换工具
2015-06-16 12:39
302 查看
HBaseConvetorUtil 实体转换工具类 [align=left]public class HBaseConvetorUtil {[/align] [align=left] /**[/align] [align=left] * @Title: convetor[/align] [align=left] * @Description: 传入hbase返回结果值,返回实例集合[/align] [align=left] * @param[/align] [align=left] * @return[/align] [align=left] * @throws[/align] [align=left] */[/align] public static <T> List<T>convetor(Class<T> cla,ResultScanner resultScanner) throws Exception{ [align=left] List<T> list = new ArrayList<T>();[/align] for (Result result :resultScanner) { [align=left] Field []fileds=cla.getDeclaredFields();[/align] [align=left] T t = cla.newInstance();[/align] for(Field field:fileds){ [align=left]field.setAccessible(true);[/align] [align=left] String fileName=field.getName();[/align] if(result.containsColumn(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase()))){ if(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase())).length==0){ [align=left] continue;[/align] [align=left] }[/align] String value=Bytes.toString(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase()))); [align=left] field.set(t, value);[/align] [align=left] }[/align] [align=left] }[/align] [align=left] list.add(t);[/align] [align=left] }[/align] [align=left] return list;[/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * @Title: convetor[/align] [align=left] * @Description: 传入hbase返回结果值,返回实例[/align] [align=left] * @param[/align] [align=left] * @return[/align] [align=left] * @throws[/align] [align=left] */[/align] public static <T> Tconvetor(Class<T> cla,Result result) throws Exception{ [align=left] Field []fileds=cla.getDeclaredFields();[/align] [align=left] T t = cla.newInstance();[/align] for(Field field:fileds){ [align=left]field.setAccessible(true);[/align] [align=left] String fileName=field.getName();[/align] if(result.containsColumn(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase()))){ if(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase())).length==0){ [align=left] continue;[/align] [align=left] }[/align] String value=Bytes.toString(result.getValue(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fileName.toUpperCase()))); [align=left] field.set(t, value);[/align] [align=left] }[/align] [align=left] }[/align] [align=left] return t;[/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * @Title: convetor[/align] [align=left] * @Description: 传入保存实例和主键ID,返回PutDelete[/align] [align=left] * @param[/align] [align=left] * @return[/align] [align=left] * @throws[/align] [align=left] */[/align] public static <T> PutDeleteconvetor(T t,String id) throws Exception { [align=left] Put put=new Put(Bytes.toBytes(id));[/align] [align=left] Delete delete=new Delete(Bytes.toBytes(id));[/align] [align=left] Field [] fileds=t.getClass().getDeclaredFields();[/align] for(Field field:fileds){ [align=left] field.setAccessible(true);[/align] [align=left] StringfieldName=field.getName();[/align] [align=left] Object value =field.get(t);[/align] [align=left] if(null==value){[/align] delete.deleteColumn(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fieldName.toUpperCase())); [align=left] continue;[/align] [align=left] }[/align] put.add(Bytes.toBytes("BASEINFO"), Bytes.toBytes(fieldName.toUpperCase()), Bytes.toBytes((String)value)); [align=left] }[/align] [align=left] PutDelete putdelete = new PutDelete();[/align] [align=left] putdelete.setPut(put);[/align] [align=left] putdelete.setDelete(delete);[/align] [align=left] return putdelete;[/align] [align=left] }[/align] [align=left] [/align] [align=left]}[/align] [align=left]很多其它精彩内请注意内容:http://bbs.superwu.cn[/align] 遵循超人学院微通道的二维码: |
相关文章推荐
- How-to: Enbale HMaster HA(high availability) and High Available Reads
- MFC操作SQlite,打开数据库路径存在中文,解决方案
- MFC操作SQlite,打开数据库路径存在中文,解决方案
- 信息增益的特征选择方法
- vsftpd详细配置说明
- poj 1035 Spell checker
- coredata基础用法1(附coredata demo)
- C中的几个小知识点
- ProtocolBuffer for Objective-C 运行环境配置(真正测试过的)
- [8] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之SUBSCRIBE(消息订阅)消息分析
- Android项目javadoc时出现的几个错误解决
- [Erlang].erl文件的一生
- Error inflating class linearlayout
- Python学习(二)---使用list和tuple
- 如何看懂代码
- 在你的Android App中支持多主题
- fedora10 安装NFS服务 ARM端挂载
- [Swust 549]--变位词(vector水过)
- 一站式解决,Android 拍照 图库的各种问题
- hdu 1035 (usage of sentinel, proper utilization of switch and goto to make code neat)