首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

枚举反射的运用(sql update语句匹配)

2012-12-20 
枚举反射的应用(sql update语句匹配)枚举反射的应用(sql update语句匹配)?protected void update(T o, boo

枚举反射的应用(sql update语句匹配)

枚举反射的应用(sql update语句匹配)

?

protected void update(T o, boolean deleteflag) {StringBuilder sd = new StringBuilder("update ");String className = o.getClass().getSimpleName();if(className.contains("VO")) {sd.append(className.toLowerCase().substring(0, className.length()-2)).append(" ");}else {sd.append(className.toLowerCase()).append(" ");}sd.append("set ");StringBuilder id = new StringBuilder("where ");if(deleteflag) {id.append("deleteflag=0 and ");}try {for(Method m : o.getClass().getDeclaredMethods()) {String name = m.getName();if (name.startsWith("get")) {sd.append(name.substring(3).toLowerCase()).append("=");if(m.invoke(o) instanceof String) {sd.append("'").append(m.invoke(o)).append("', ");}else if(m.invoke(o) instanceof Enum) {Class enumClass = m.invoke(o).getClass().getFields()[0].getDeclaringClass();if(enumClass.isEnum()) {for(Object obj : enumClass.getEnumConstants()) {if(((Enum)obj).name().equals(m.invoke(o).toString())) {for(Method mEnum : enumClass.getDeclaredMethods()) {String enumName = mEnum.getName();if(enumName.startsWith("get")) {sd.append("'").append(mEnum.invoke(m.invoke(o))).append("', ");}}}}}}else {sd.append(m.invoke(o)).append(", ");}}if(name.startsWith("primaryGet")) {id.append(name.substring(10).toLowerCase()).append("=");if(m.invoke(o) instanceof String) {id.append("'").append(m.invoke(o)).append("';");}else {id.append(m.invoke(o)).append(";");}}}sd.delete(sd.length()-2, sd.length());sd.append(" ");sd.append(id);} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}System.out.println(sd.toString());//executeTrans(sd.toString());}

?

或者:

Object myEnum=null;        Class enumClass=(Class)Class.forName("com.reflectenum.MyEnum");//MyEnum包含CAT,DOG,PIG        if(enumClass.isEnum()){            for(Object obj:enumClass.getEnumConstants()){                if(((Enum)obj).name().equals("DOG")){                    result=obj;                }            }        }        System.out.println(result);//将打印出DOG

?

?

?

?

热点排行