public static Statement setStatementParameters(Statement statement,
			Object[] statementParameters) {
		Object wrapper = null;
		Method method = null;
		try {

			for (int i = 0; i < statementParameters.length; i++) {
				wrapper = statementParameters[i];
				if (!SQLReflect.complies(wrapper.getClass())) {
					throw new SQLReflectException(
							"statementParameters MUST be statement compliants types. see SQLReflect");
				}
				method = PreparedStatement.class.getMethod(
						SQLReflect.SETTERS.get(wrapper.getClass().getName()),
						int.class,
						SQLReflect.UNBOXED.get(wrapper.getClass().getName()));
				method.invoke(statement, i + 1, statementParameters[i]);
			}
		} catch (SQLReflectException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return statement;
	}