package org.beanfuse.db.meta; import static java.sql.Types.BIGINT; import static java.sql.Types.INTEGER; import static java.sql.Types.VARCHAR; import java.math.BigDecimal; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Timestamp; import java.sql.Types; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TypeUtils { private static Logger logger = LoggerFactory.getLogger(TypeUtils.class); public static void setValue(PreparedStatement ps, int index, Object value, int sqlType) throws SQLException { if (null == value) { ps.setNull(index, sqlType); return; } switch (sqlType) { case BIGINT: ps.setLong(index, (Long) value); break; case INTEGER: ps.setInt(index, (Integer) value); break; case VARCHAR: ps.setString(index, (String) value); break; case Types.DATE: ps.setDate(index, (Date) value); break; case Types.TIMESTAMP: ps.setTimestamp(index, (Timestamp) value); break; case Types.BOOLEAN: ps.setBoolean(index, (Boolean) value); break; case Types.FLOAT: case Types.DECIMAL: ps.setBigDecimal(index, (BigDecimal) value); break; default: logger.warn("unsupported type {}", sqlType); } } }