package jef.database.dialect.type;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import jef.database.dialect.DatabaseDialect;
import jef.database.jdbc.result.IResultSet;
import jef.tools.StringUtils;
public class NumBigDecimalMapping extends AColumnMapping{
public Object jdbcSet(PreparedStatement st, Object value, int index, DatabaseDialect session) throws SQLException {
if(StringUtils.isEmpty(value)){
st.setNull(index, java.sql.Types.DECIMAL);
}else{
st.setBigDecimal(index, ((BigDecimal)value));
}
return value;
}
public int getSqlType() {
return java.sql.Types.DECIMAL;
}
@Override
protected String getSqlExpression(Object value, DatabaseDialect profile) {
return value.toString();
}
public Object jdbcGet(IResultSet rs, int n) throws SQLException {
return rs.getBigDecimal(n);
}
@Override
protected Class<?> getDefaultJavaType() {
return BigDecimal.class;
}
@Override
public void jdbcUpdate(ResultSet rs, String columnIndex, Object value, DatabaseDialect dialect) throws SQLException {
rs.updateBigDecimal(columnIndex, (BigDecimal)value);
}
}