Exception in thread "main" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer
at dao.impl.JDBCTemplatePersonDaoImpl.findById(JDBCTemplatePersonDaoImpl.java:30)
错误原因:从数据库取出来数值型的值为:BigDecimal
错误代码:
//这行并未报错,只有运行时才出错
int p_age=(Integer) personMap.get("AGE");
正确:int p_age=((BigDecimal) personMap.get("AGE")).intValue();
原代码类如下:
package dao.impl;
import java.math.BigDecimal;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import dao.PersonDao;
import entity.Person;
public class JDBCTemplatePersonDaoImpl implements PersonDao {
private JdbcTemplate jdbcTemplate;
//通过IOC注入数据源后,初始始化jdbcTemplate对象
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public Person findById(Long id) {
//通过queryForList执行sql语句,返回结果集,结果集类型为Map
List person=jdbcTemplate.queryForList("select * from person where id="+id.longValue());
Iterator it=person.iterator();
while(it.hasNext()){
Map personMap=(Map) it.next();
Long p_id=((BigDecimal)personMap.get("ID")).longValue();
String p_name=(String) personMap.get("NAME");
int p_age=((BigDecimal) personMap.get("AGE")).intValue();
Person p=new Person();
p.setId(p_id);
p.setName(p_name);
p.setAge(p_age);
return p;
}
return null;
}
}
分享到:
相关推荐
java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等
解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal
A Class for Creating a Trace Log(153KB)
java入门基础,入门宝典,新手学习必备,好东西不容错过!
关于java中BigDecimal的简介(csdn)————程序
Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...
JAVA基础:java.math.BigDecimal的使用方法. JAVA基础:java.math.BigDecimal的使用方法.
import java.math.BigDecimal; import java.math.BigInteger; public class DemoInteger{ public static void main(String[] args) { //四则运算:BigInteger ⼤的数据的运算 BigInteger b1=new BigInteger(...
当 BigDecimal 值大于 Integer.MAX_VALUE 时,intValue() 方法将抛出 java.lang.ArithmeticException 异常。例如,在上面的示例代码中,若输入的 BigDecimal 值为 2147483648 时,intValue() 方法将抛出“Out of ...
import java.math.BigDecimal; import java.text.DecimalFormat; public class Calculation { public static final DecimalFormat df = new DecimalFormat("######0.00"); /** * @methodName format2point * @...
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做...
amp-java AMP(异步消息协议)的 Java 实现,包括一些扭曲的 Python 功能,如React器和延迟。 有关 AMP 的更多信息,请... AMP 十进制 = java.math.BigDecimal AMP 日期时间 = java.util.Calendar AMP ListOf = java
alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...
BigDecimal.class,BigDecimal[].class, BigInteger.class,BigInteger[].class, Date.class,Date[].class 通过对以上基本元数据类型的模拟实现,本框架可以轻松模拟由以上元数据结构组成的BEAN、LIST、SET、...
bigdecimal转integer
其中BigDecimal-all-last.min.js大小为:26KB GZIP压缩后7K,完全可以用于实际生产过程中。 简单例子: var a = new BigDecimal("1500"); var b = new BigDecimal("33"); alert(a.multiply(b)); alert&#...
rules.put("java.math.BigDecimal", "DECIMAL"); rules.put("java.util.Date", "TIMESTAMP"); 在SqlMapAutoGen类的构造函数中,可以自行修改 3)预先定义了模板 temple.xml (请放在D:/test 目录下) temple.xml定义了...
java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....
BigInteger.java BigDecimal.java 文件 源代码
java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....