1 21 package net.mlw.vlh.adapter.jdbc.util.setter; 22 23 import java.math.BigDecimal ; 24 import java.math.BigInteger ; 25 import java.sql.PreparedStatement ; 26 import java.sql.SQLException ; 27 import java.sql.Types ; 28 import java.text.ParseException ; 29 30 38 public class DecimalSetter extends AbstractSetter 39 { 40 43 public int set(PreparedStatement query, int index, Object value) throws SQLException , ParseException 44 { 45 if (value instanceof BigDecimal ) 46 { 47 query.setBigDecimal(index++, (BigDecimal ) value); 48 } 49 else if (value instanceof BigInteger ) 50 { 51 BigDecimal decimal = new BigDecimal ((BigInteger ) value); 52 query.setBigDecimal(index++, decimal); 53 } 54 else if (value instanceof Long ) 55 { 56 BigDecimal decimal = BigDecimal.valueOf(((Long ) value).longValue()); 57 query.setBigDecimal(index++, decimal); 58 } 59 else if (value instanceof Double ) 60 { 61 BigDecimal decimal = new BigDecimal (((Double ) value).doubleValue()); 62 query.setBigDecimal(index++, decimal); 63 } 64 else if (value instanceof String ) 65 { 66 BigDecimal decimal = new BigDecimal ((String ) value); 67 query.setBigDecimal(index++, decimal); 68 } 69 else if (value == null) 70 { 71 query.setNull(index++, Types.DECIMAL); 72 } 73 else 74 { 75 throw new IllegalArgumentException ("Cannot convert value of class " + value.getClass().getName() + " to decimal at position " 76 + index); 77 } 78 return index; 79 } 80 } | Popular Tags |