本文整理汇总了Java中org.pentaho.di.core.row.ValueMetaInterface.getOriginalColumnType方法的典型用法代码示例。如果您正苦于以下问题:Java ValueMetaInterface.getOriginalColumnType方法的具体用法?Java ValueMetaInterface.getOriginalColumnType怎么用?Java ValueMetaInterface.getOriginalColumnType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.pentaho.di.core.row.ValueMetaInterface
的用法示例。
在下文中一共展示了ValueMetaInterface.getOriginalColumnType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getValueFromResultSet
import org.pentaho.di.core.row.ValueMetaInterface; //导入方法依赖的package包/类
/**
* This method allows a database dialect to convert database specific data types to Kettle data types.
*
* @param resultSet The result set to use
* @param valueMeta The description of the value to retrieve
* @param index the index on which we need to retrieve the value, 0-based.
* @return The correctly converted Kettle data type corresponding to the valueMeta description.
* @throws KettleDatabaseException
*/
public Object getValueFromResultSet(ResultSet rs, ValueMetaInterface val, int i) throws KettleDatabaseException {
Object data = null;
try {
switch (val.getType()) {
case ValueMetaInterface.TYPE_BOOLEAN:
data = Boolean.valueOf(rs.getBoolean(i + 1));
break;
case ValueMetaInterface.TYPE_NUMBER:
data = new Double(rs.getDouble(i + 1));
break;
case ValueMetaInterface.TYPE_BIGNUMBER:
data = rs.getBigDecimal(i + 1);
break;
case ValueMetaInterface.TYPE_INTEGER:
data = Long.valueOf(rs.getLong(i + 1));
break;
case ValueMetaInterface.TYPE_STRING:
if (val.isStorageBinaryString()) {
data = rs.getBytes(i + 1);
} else {
data = rs.getString(i + 1);
}
break;
case ValueMetaInterface.TYPE_BINARY:
if (supportsGetBlob()) {
Blob blob = rs.getBlob(i + 1);
if (blob != null) {
data = blob.getBytes(1L, (int) blob.length());
} else {
data = null;
}
} else {
data = rs.getBytes(i + 1);
}
break;
case ValueMetaInterface.TYPE_DATE:
if (val.getOriginalColumnType() == java.sql.Types.TIME) {
// Neoview can not handle getDate / getTimestamp for a Time column
data = rs.getTime(i + 1);
break; // Time is a subclass of java.util.Date, the default date
// will be 1970-01-01
} else if (val.getPrecision() != 1 && supportsTimeStampToDateConversion()) {
data = rs.getTimestamp(i + 1);
break; // Timestamp extends java.util.Date
} else {
data = rs.getDate(i + 1);
break;
}
default:
break;
}
if (rs.wasNull()) {
data = null;
}
} catch(SQLException e) {
throw new KettleDatabaseException("Unable to get value '"+val.toStringMeta()+"' from database resultset, index "+i, e);
}
return data;
}