All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.clickntap.tool.jdbc.JdbcParams Maven / Gradle / Ivy

There is a newer version: 1.30
Show newest version
package com.clickntap.tool.jdbc;

import com.clickntap.tool.types.Datetime;
import com.clickntap.utils.ConstUtils;
import com.clickntap.utils.SecurityUtils;
import org.apache.tools.ant.filters.StringInputStream;
import org.springframework.beans.BeanUtils;

import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

public class JdbcParams {

    private List params = new ArrayList();

    private Object object;
    private Timestamp timestamp;

    public JdbcParams(Object object) {
        this.object = object;
        this.timestamp = new Timestamp(System.currentTimeMillis());
    }

    public String get(String propertyName) throws Exception {
        Method readMethod;
        try {
            readMethod = BeanUtils.getPropertyDescriptor(object.getClass(), propertyName).getReadMethod();
        } catch (Exception e) {
            throw new Exception("the property '" + propertyName + "' does not exists in " + object.getClass());
        }
        try {
            Object value = readMethod.invoke(object, (Object[]) null);
            // if (value != null && value instanceof String) {
            // value = AsciiUtils.textToUtf7(value.toString());
            // }
            params.add(value);
            return ConstUtils.QUESTION_MARK;
        } catch (Exception e) {
            return ConstUtils.NULL;
        }
    }

    public String md5(String value) throws Exception {
        try {
            params.add(SecurityUtils.md5(value));
            return ConstUtils.QUESTION_MARK;
        } catch (Exception e) {
            return ConstUtils.NULL;
        }
    }

    public String toString(String param) {
        params.add(param);
        return ConstUtils.QUESTION_MARK;
    }

    public String toInputStream(String param) {
        params.add(new StringInputStream(param));
        return ConstUtils.QUESTION_MARK;
    }

    public String toTime(Datetime param) {
        params.add(new Timestamp(param.getTimeInMillis()));
        return ConstUtils.QUESTION_MARK;
    }

    public List getParams() {
        return params;
    }

    public Object[] toArray() {
        return params.toArray();
    }

    public void close() {
    }

    public Object getObject() {
        return object;
    }

    public Object getTarget() {
        return object;
    }

    public Object getBean() {
        return object;
    }

    public String now() {
        params.add(timestamp);
        return ConstUtils.QUESTION_MARK;
    }

    public Timestamp getTimestamp() {
        return timestamp;
    }

    public Datetime getDate() {
        return new Datetime(timestamp);
    }

}