public static void insertObject(Object toSave){ Map fieldsToSave = new HashMap(); Field[] fields = toSave.getClass().getDeclaredFields(); for(Field field : fields){ String key = field.getName(), value = ""; if(field.isAnnotationPresent(BddSave.class)){ BddSave annotation = field.getAnnotation(BddSave.class); if(!annotation.value()) continue; if(!annotation.bddName().equalsIgnoreCase("default")) key = annotation.bddName(); if(!annotation.parserToBdd().equalsIgnoreCase("none")){ try { Method toGet = toSave.getClass().getMethod(annotation.parserToBdd()); if(!toGet.isAccessible()) toGet.setAccessible(true); value = toGet.invoke(toSave).toString(); } catch (SecurityException e) { e.printStackTrace(); continue; } catch (NoSuchMethodException e) { e.printStackTrace(); continue; } catch (IllegalArgumentException e) { e.printStackTrace(); continue; } catch (IllegalAccessException e) { e.printStackTrace(); continue; } catch (InvocationTargetException e) { e.printStackTrace(); continue; } }else{ if(!field.isAccessible()) field.setAccessible(true); try { value = getStringFromValue(field.get(toSave)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }else{ if(!field.isAccessible()) field.setAccessible(true); try { value = getStringFromValue(field.get(toSave)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } fieldsToSave.put(key, value); } String tableName = toSave.getClass().getName(); if(toSave.getClass().isAnnotationPresent(BddSave.class)){ BddSave annotation = toSave.getClass().getAnnotation(BddSave.class); if(!annotation.bddName().equalsIgnoreCase("default")) tableName = annotation.bddName(); else{ String[] tableNameSplit = tableName.split("."); tableName = tableNameSplit[tableNameSplit.length-1]; } }else{ String[] tableNameSplit = tableName.split("."); tableName = tableNameSplit[tableNameSplit.length-1]; } String keys = "", values = ""; Iterator kit = fieldsToSave.keySet().iterator(); while(kit.hasNext()){ keys = keys+","+kit.next(); } kit = null; Iterator vit = fieldsToSave.values().iterator(); while(vit.hasNext()){ values = values+",'"+vit.next(); } vit = null; if(keys.length()>0){ keys = keys.substring(1); values = values.substring(1); } Database.update("INSERT INTO "+tableName+"("+keys+") VALUES("+values+")"); }