给实体所有字段批量反射赋值

前言

当遇到新开发业务或者更换数据库引擎,涉及到新增方法,一个一个set 赋值真心烦人,偶尔还漏set,真是出力不讨好,让人头大
偏偏开发又很懒,对于重复简单的重复劳动打心底排斥,那咱自己就搞一个批量生产定制,上代码

代码

package com.wind.cloud.entiry;
import java.lang.reflect.Field;
import java.util.Random;

/**
 * @author windbird
 * @Date 2022/12/16 10:44
 * @ClassName GetEntityAllSetField
 * @desc: 给一个实体所有字段赋值去模拟
 */
public class GetEntityAllSetField {
    public static void main(String[] args) {
        String setSql ="";
        String aliasName = "header";
        Field[] declaredFields = EntityInfo.class.getDeclaredFields();
        /**
         * setSql
         * aliasName  对象别名
         * declaredFields 类属性
         */
        setSql = getEntitySetResultList(setSql, aliasName,declaredFields);
        System.out.println("setSql===>\n"+setSql);
    }

    private static String getEntitySetResultList(String setSql, String aliasName, Field[] declaredFields) {
        StringBuilder setBuilder= new StringBuilder();
        for(Field f: declaredFields){
            f.setAccessible(true);
            System.out.println(f.getGenericType().getTypeName());
            switch(f.getGenericType().getTypeName()){
                case "int" :
                     int a = Math.abs(new Random().nextInt());
                     if("version".equals(f.getName())){
                         setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(0).append(")").append(";").append("\n");
                     }else{
                         setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(a).append(")").append(";").append("\n");
                     }
                break ;
                case "java.lang.Integer":
                    Integer b = Math.abs(new Random().nextInt());
                    if("version".equals(f.getName())){
                        setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(1).append(")").append(";").append("\n");
                    }else {
                        setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0, 1).toUpperCase() + f.getName().substring(1, f.getName().length())).append("(").append(b).append(")").append(";").append("\n");
                    }
                    break;
                case "long":
                case "java.lang.Long" :
                    if ("userId".equals(f.getName()) || "user_id".equals(f.getName())){
                        setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append("18888888888888L").append(")").append(";").append("\n");
                        break;
                    }else if("id".equals(f.getName())){
                Long l = Math.abs(new Random().nextLong());
                setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(l).append(")").append(";").append("\n");
                        break;
                    }else{
                        setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append("88888888888L").append(")").append(";").append("\n");
                      break;
                    }
                case  "double":
                    double da = Math.abs(new Random().nextDouble());
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(da).append(")").append(";").append("\n");
                    break;
                case  "java.lang.Double":
                    Double Da = Math.abs(new Random().nextDouble());
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(Da).append(")").append(";").append("\n");
                    break;
                case  "short":
                    short st =12;
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(st).append(")").append(";").append("\n");
                    break;
                case  "java.lang.Short":
                    Short St =235;
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(St).append(")").append(";").append("\n");
                    break;
                case  "byte":
                    byte bt =-18;
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(bt).append(")").append(";").append("\n");
                    break;
                case  "java.lang.Byte":
                    Byte Bt =18;
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(Bt).append(")").append(";").append("\n");
                    break;
                case  "boolean":
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(true).append(")").append(";").append("\n");
                    break;
                case  "java.lang.Boolean":
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(false).append(")").append(";").append("\n");
                    break;
                case  "char":
                    char ct ='m';
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(ct).append(")").append(";").append("\n");
                    break;
                case  "java.lang.Character":
                    Character Ct ='M';
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(Ct).append(")").append(";").append("\n");
                    break;
                case  "float":
                    float fa = Math.abs(new Random().nextFloat());
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(fa).append(")").append(";").append("\n");
                    break;
                case  "java.lang.Float":
                    Float Fa = Math.abs(new Random().nextFloat());
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(").append(Fa).append(")").append(";").append("\n");
                    break;
                case  "java.lang.String":
                    String tempShow ="中国地区上海张家港熬阿胶块VN你123244在甘霖啊诶我让不骄傲啊总V领从你肚子里不是拍照到哪里存哪里科大智能落库的";
                    Integer random1 = Integer.valueOf(String.valueOf(Math.random()*1000).substring(0,1));
                    Integer random2 = Integer.valueOf(String.valueOf(Math.random()*1000).substring(0,1));
                    tempShow =tempShow.substring(random1,random1+random2);
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(\"").append(tempShow).append("\")").append(";").append("\n");
                    break;
                case  "java.util.Date":
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(new Date())").append(";").append("\n");
                    break;
                default:
                    setBuilder.append(aliasName).append(".").append("set").append(f.getName().substring(0,1).toUpperCase()+f.getName().substring(1,f.getName().length())).append("(\"").append("\")").append(";").append("\n");
            }
            setSql=setBuilder.toString();
        }
        return setSql;
    }
}在这里插入代码片

效果图

给实体所有字段批量反射赋值_第1张图片

你可能感兴趣的:(java,mysql)