outdataconvertutil.java

来自「羽量级数据持久层开发框架」· Java 代码 · 共 120 行

JAVA
120
字号
package org.speedframework.convert;

//~--- non-JDK imports --------------------------------------------------------

import org.speedframework.exception.SpeedFrameworkException;
import org.speedframework.utilities.PropertiesUtil;

//~--- JDK imports ------------------------------------------------------------

import java.lang.reflect.InvocationTargetException;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author victorching
 */
public class OutDataConvertUtil
 {

    /**
     * 方法描述信息,
     * 描述方法是做什么的,
     * 如何调用,最好给出调用代码示例。
     *
     * @param rs
     * @param columnName
     * @param propertyName
     * @param voClass
     *
     * @return
     *
     * @throws IllegalAccessException
     * @throws InstantiationException
     * @throws InvocationTargetException
     * @throws NoSuchMethodException
     * @throws SQLException
     * @throws SpeedFrameworkException
     */
    public static Object outPortData(ResultSet rs, String columnName, String propertyName, Class voClass)
            throws SQLException, InstantiationException, NoSuchMethodException, InvocationTargetException,
                   IllegalAccessException, SpeedFrameworkException {
        Object fieldValue = null;

        if (columnName != null) {
            if ("rownum".equals(columnName)) {
                fieldValue = new Long(rs.getLong(columnName));
            } else if ("rownum_".equals(columnName)) {
                fieldValue = new Long(rs.getLong(columnName));
            } else if ("count_".equals(columnName)) {
                fieldValue = new Long(rs.getLong(columnName));
            } else {
                if (propertyName == null) {
                    throw new SpeedFrameworkException("View domain object property not found name " + columnName);
                }

                if (propertyName != null) {
                    Class propertyClass = PropertiesUtil.getPropertyType(voClass.newInstance(), propertyName);

                    if (propertyClass == null) {
                        throw new SpeedFrameworkException("View domain object property not found name " + columnName);
                    }

                    String classType = propertyClass.getName();

                    if (classType.equals("java.lang.Integer") || classType.equals("int")) {
                        fieldValue = new Integer(rs.getInt(columnName));
                    } else if (classType.equals("java.lang.Long") || classType.equals("long")) {
                        fieldValue = new Long(rs.getLong(columnName));
                    } else if (classType.equals("java.math.BigDecimal")) {
                        fieldValue = rs.getBigDecimal(columnName);
                    } else if (classType.equals("java.lang.String")) {
                        fieldValue = rs.getString(columnName);
                    } else if (classType.equals("java.util.Date")) {
                        java.sql.Date date = rs.getDate(columnName);

                        if (date != null) {
                            fieldValue = new java.util.Date(date.getTime());
                        } else {
                            fieldValue = null;
                        }
                    } else if (classType.equals("java.sql.Time")) {
                        java.sql.Time date = rs.getTime(columnName);

                        if (date != null) {
                            fieldValue = date;
                        } else {
                            fieldValue = null;
                        }
                    } else if (classType.equals("java.sql.Timestamp")) {
                        java.sql.Timestamp date = rs.getTimestamp(columnName);

                        if (date != null) {
                            fieldValue = date;
                        } else {
                            fieldValue = null;
                        }
                    } else if (classType.equals("java.lang.Double") || classType.equals("double")) {
                        fieldValue = new Double(rs.getDouble(columnName));
                    } else if (classType.equals("java.lang.Float") || classType.equals("float")) {
                        fieldValue = new Float(rs.getFloat(columnName));
                    } else if (classType.equals("java.lang.Byte") || classType.equals("byte")) {
                        fieldValue = new Byte(rs.getByte(columnName));
                    } else if (classType.equals("java.lang.Boolean") || classType.equals("boolean")) {
                        fieldValue = new Boolean(rs.getBoolean(columnName));
                    } else if (classType.equals("java.lang.Char") || classType.equals("char")) {
                        fieldValue = new java.lang.Character(rs.getString(columnName).charAt(0));
                    } else if (classType.equals("java.sql.Blob") || classType.equals("Blob")) {
                        fieldValue = rs.getBlob(columnName);
                    } else if (classType.equals("java.sql.Clob") || classType.equals("Clob")) {
                        fieldValue = rs.getClob(columnName);
                    }
                }
            }
        }

        return fieldValue;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?