JPA反射机制实现对象获取-2

/**
* 用于获取Insert的字段映射累加
* @return String
*/
public String returnInsertColumnsDefine()
{
StringBuilder sb = new StringBuilder();

List<String> list = columnMap.get(this.getClass());
int i = 0;

for (String column : list)
{
if (isNull(column))
{
continue;
}

if (i++ != 0)
{
sb.append(',');
}

sb.append("#{").append(column).append('}');
}
return sb.toString();
}

/**
* 用于获取Update Set的字段累加
* @return String
*/
public String returnUpdateSet()
{
StringBuilder sb = new StringBuilder();

List<String> list = columnMap.get(this.getClass());
int i = 0;

for (String column : list)
{
if (isNull(column))
{
continue;
}

if (i++ != 0)
{
sb.append(',');
}

sb.append(column).append("=#{").append(column).append('}');
}

return sb.toString();
}

public Integer getId()
{
return 0;
}

/**
* 打印类字段信息
*/
@Override
public String toString()
{
Field[] fields = this.getClass().getDeclaredFields();
StringBuilder sb = new StringBuilder();
sb.append('[');
for (Field f : fields)
{
if (Modifier.isStatic(f.getModifiers()) || Modifier.isFinal(f.getModifiers()))
{
continue;
}

Object value = null;

try
{
f.setAccessible(true);
value = f.get(this);
}
catch (IllegalArgumentException e)
{
log.error(e);
}
catch (IllegalAccessException e)
{
log.error(e);
}

if (value != null)
{
sb.append(f.getName()).append('=').append(value).append(',');
}
}

sb.append(']');

return sb.toString();
}

/**
* 列名判空处理
*
* @param String fieldname
* @return boolean
* @throws SecurityException NoSuchFieldException IllegalArgumentException
* @since TBSC
*/
private boolean isNull(String fieldname)
{
try
{
Field field = this.getClass().getDeclaredField(fieldname);
return isNull(field);
}
catch (SecurityException e)
{
log.error(e);
}
catch (NoSuchFieldException e)
{
log.error(e);
}
catch (IllegalArgumentException e)
{
log.error(e);
}

return false;
}

/**
* 列名判空处理
*
* @param Field field
* @return boolean
* @throws SecurityException IllegalArgumentException IllegalAccessException
* @since TBSC
*/
private boolean isNull(Field field)
{
try
{
field.setAccessible(true);
return field.get(this) == null;
}
catch (SecurityException e)
{
log.error(e);
}
catch (IllegalArgumentException e)
{
log.error(e);
}
catch (IllegalAccessException e)
{
log.error(e);
}

return false;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值