Mybatis数据生成工具类

来源:互联网 发布:大数据时代的营销 编辑:程序博客网 时间:2024/06/05 15:18
package com.pppcar.util;import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import com.pppcar.entity.product.PsMoveProductEntity;/** *  * ClassUtils *  * @author HuangXinyu *  * @Date 2017年6月20日 下午3:58:34 * * @version v1.0 * */public class CjClassUtils {public static List<Class<?>> getsuperClass(Class<?> clazz){if(clazz == null){return null;}List<Class<?>> listSuperClass = new ArrayList<Class<?>>();Class<?> superclass = clazz.getSuperclass();while (superclass != null) {if(superclass.getName().equals("java.lang.Object")){break;}listSuperClass.add(superclass);superclass = superclass.getSuperclass();}return listSuperClass;}/** * 获取当前类的所有的继类 *  * @Date 2017年6月20日 下午4:28:34 *  * @param clazz * @return */public static List<Class<?>> getClassAll(Class<?> clazz){if(clazz == null){return null;}List<Class<?>> listSuperClass = new ArrayList<Class<?>>();listSuperClass.add(clazz);Class<?> superclass = clazz.getSuperclass();while (superclass != null) {if(superclass.getName().equals("java.lang.Object")){break;}listSuperClass.add(superclass);superclass = superclass.getSuperclass();}return listSuperClass;}public static List<Field> getFields(Class<?> clazz){if(clazz == null){return null;}List<Field> listFields = new ArrayList<Field>();List<Class<?>> listClasss = getClassAll(clazz);for(Class<?> clazzNew : listClasss){Field[] fields = clazzNew.getDeclaredFields();listFields.addAll(Arrays.asList(fields));}return listFields;}public static Field[] getFieldsArray(Class<?> clazz){if(clazz == null){return null;}Field[] fields = clazz.getDeclaredFields();return fields;}/** *  * set对象参数,目前只支持String 类型 * @Date 2017年4月7日 下午3:23:50 *  * @param key * @param value * @param o * @throws Exception */public static void setObject(String key, Object value, Object o) throws Exception {java.lang.reflect.Field field = null;// 通过属性名得到对应的set方法field = o.getClass().getDeclaredField(key);// 属性为private属性设置为true 则指示反射的对象在使用时应该取消 Java 语言访问检查field.setAccessible(true);// 为该set方法赋值(参数为对象,属性值)if("java.lang.String".equals(value.getClass().getTypeName())){field.set(o,value.toString().trim());}else if("java.lang.Integer".equals(value.getClass().getTypeName())){field.set(o,value);}else if("java.lang.Double".equals(value.getClass().getTypeName())){field.set(o,value);}else if("java.lang.Long".equals(value.getClass().getTypeName())){field.set(o,value);}}/** * 根据属性名称获取到对应的value *  * @Date 2017年5月31日 上午9:30:33 *  * @param obj * @param fieldName * @param clazz */public static String getValue(Object obj,String fieldName,Class<?> clazz) {try {PropertyDescriptor pd = new PropertyDescriptor(fieldName, clazz);Method getMethod = pd.getReadMethod();// 获得get方法Object o = getMethod.invoke(obj);// 执行get方法返回一个Objectreturn o+"";} catch (SecurityException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IntrospectionException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}return "";}public static void main(String[] args) {System.out.println(getFields(PsMoveProductEntity.class).size());}}