代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
Java实体和redis中的Hash相互的转换
作者:
jessica
/ 发布于
2014/12/30
/
942
项目中使用redis作为缓存,此代码用来将Java实体映射成redis中对应的Hash,和将redis中的Hash映射成Java实体
package com.i91ku.onepiece.cache.utils; import com.google.common.collect.Maps; import com.i91ku.common.util.ObjectUtil; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.converters.*; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.util.Map; /** * CreateDate : 14-12-22 上午11:51 * * @author gongweixin * @version 1.1 */ public class EntityUtils { static { ConvertUtils.register(new LongConverter(null), Long.class); ConvertUtils.register(new ByteConverter(null), Byte.class); ConvertUtils.register(new IntegerConverter(null), Integer.class); ConvertUtils.register(new DoubleConverter(null), Double.class); ConvertUtils.register(new ShortConverter(null), Short.class); ConvertUtils.register(new FloatConverter(null), Float.class); } public static Map<String, String> objectToHash(Object obj) { try { Map<String, String> map = Maps.newHashMap(); BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { if (!property.getName().equals("class")) { if (property.getReadMethod().invoke(obj) != null) { map.put(property.getName(), "" + property.getReadMethod().invoke(obj)); } } } return map; } catch (IntrospectionException | InvocationTargetException | IllegalAccessException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") private static void hashToObject(Map<?, ?> map, Object obj) { try { BeanUtils.populate(obj, (Map)map); } catch (IllegalAccessException | InvocationTargetException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") public static <T> T hashToObject(Map<?, ?> map, Class c) { if (ObjectUtil.isEmpty(map)) { return null; } try { Object obj = c.newInstance(); hashToObject(map, obj); return (T)obj; } catch (InstantiationException | IllegalAccessException e) { throw new RuntimeException(e); } } }
试试其它关键字
Java实体
redis
Hash
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
jessica
贡献的其它代码
(
10
)
.
video视频播放,play()、pause()、duration时长、onen
.
如何固定查询一个时间段的数据
.
支付宝 第三方即时到账支付 接口
.
根据出生年月日计算生日 精确到多少年多少月多少天
.
连接到 POP3 邮箱,并检查是否有邮件
.
如何把有着某个特定名称的所有元素的值都放到一个数组
.
获取当前系统桌面路径
.
code标签
.
组合算法实现
.
Java实体和redis中的Hash相互的转换
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3