//遍历order,得到属性值不为空的属性,type:操作类型。0是新增,1是更新
private Map<String, Object> reflect(Order order,String type) throws Exception{
Map<String, Object> map=new HashMap<String, Object>();
Class<? extends Order> cls = order.getClass();
Field[] fields = cls.getDeclaredFields();
for(Field f:fields){
//获取订单表中字段上的不须入库映射的注解
Transient annon = f.getAnnotation(Transient.class);
if(annon!=null) {
continue;
}
f.setAccessible(true);
if(f.getName().equals("serialVersionUID"))continue;
//如果值不为空
if(f.get(order)!=null&&StringUtils.isNotBlank(f.get(order).toString())) {
if(f.get(order) instanceof Date) {
map.put(humpToUnderline(f.getName()),DateUtil.dateToString((Date) f.get(order)));
}else {
map.put(humpToUnderline(f.getName()),f.get(order));
}
}else if(type.equals("0")) {//新增,获取空值
map.put(humpToUnderline(f.getName()),null);
}
}
return map;
} /***
* 下划线命名转为驼峰命名
*
* @param para
* 下划线命名的字符串
*/ public String underlineToHump(String para){
StringBuilder result=new StringBuilder();
String a[]=para.split("_");
for(String s:a){
if (!para.contains("_")) {
result.append(s);
continue;
}
if(result.length()==0){
result.append(s.toLowerCase());
}else{
result.append(s.substring(0, 1).toUpperCase());
result.append(s.substring(1).toLowerCase());
}
}
return result.toString();
} /***
* 驼峰命名转为下划线命名
*
* @param para
* 驼峰命名的字符串
*/ public String humpToUnderline(String para){
StringBuilder sb=new StringBuilder(para);
int temp=0;//定位
if (!para.contains("_")) {
for(int i=0;i<para.length();i++){
if(Character.isUpperCase(para.charAt(i))){
sb.insert(i+temp, "_");
temp+=1;
}
}
}
return sb.toString();
}

最新文章

  1. 总结common-dbutils.jar
  2. Android 监听锁屏、解锁、开屏 操作
  3. test if DEMO
  4. 【原】使用SQLite打开本地*.db文件
  5. JS获取年月日
  6. ASP.NET MV3 部署网站 报&quot;Could not load file or assembly &#39; System.Web.Helpers “ 错的解决方法
  7. asp.net 下载Excel (数据流,不保存)--客户端
  8. C#模拟登录的htmlHelper类
  9. DataTabe对象的例子
  10. CF 452A(Eevee-直接试)
  11. 磁盘工作原理与IO性能分析
  12. Jenkins设置svn授权
  13. prototype.js 和json.js 冲突
  14. nw.js中用sqlite3
  15. Beta发布用户使用报告
  16. 【转载】网站遭遇DDoS攻击怎么办
  17. Linux 依据关键字查找正在运行的进程
  18. canvas绘制气泡
  19. Weblogic常见故障常:JDBC Connection Pools【转】
  20. public class feign.RetryableException feign.RetryableException: Connection refused (Connection refused) executing POST http://common-wx/wx/auth/client/token/v1

热门文章

  1. Java12新特性 -- switch表达式
  2. Python操作三大主流数据库☝☝☝
  3. EF通过导航属性取出从表的集合后,无法删除子表
  4. PowUp渗透脚本基本模块
  5. PHP array_reverse
  6. snkrs web端分析,canvas中的fingerpint
  7. 一张图看懂Rxjava的原理
  8. 常用函数-Linux文件操作
  9. 为什么重写equals必须重写hoshCode的基础分析
  10. Mybaits 源码解析 (一)----- 搭建一个mybatis框架(MyBatis HelloWorld)