`

java.math.BigDecimal cannot be cast to java.lang.Integer

阅读更多
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 操作类

    java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等

    Can't find a codec for class java.math.BigDecimal.txt

    解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal

    A Class for Creating a Trace Log(153KB)

    A Class for Creating a Trace Log(153KB)

    使用java理解程序逻辑第十七章(完结篇)

    java入门基础,入门宝典,新手学习必备,好东西不容错过!

    关于java中BigDecimal的简介(csdn)————程序.pdf

    关于java中BigDecimal的简介(csdn)————程序

    BigDecimal 加减乘除运算

    Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...

    Java对BigDecimal常用方法的归类 -计算机等级考试-考试吧

    JAVA基础:java.math.BigDecimal的使用方法. JAVA基础:java.math.BigDecimal的使用方法.

    javaInteger大数据运算.pdf

    import java.math.BigDecimal; import java.math.BigInteger; public class DemoInteger{ public static void main(String[] args) { //四则运算:BigInteger ⼤的数据的运算 BigInteger b1=new BigInteger(...

    将 BigDecimal 类型转换为 Integer 类型.pdf

    当 BigDecimal 值大于 Integer.MAX_VALUE 时,intValue() 方法将抛出 java.lang.ArithmeticException 异常。例如,在上面的示例代码中,若输入的 BigDecimal 值为 2147483648 时,intValue() 方法将抛出“Out of ...

    Java 加减乘除工具类(解决精度损失问题)

    import java.math.BigDecimal; import java.text.DecimalFormat; public class Calculation { public static final DecimalFormat df = new DecimalFormat("######0.00"); /** * @methodName format2point * @...

    BigDecimalUtils

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做...

    amp-java:AMP的Java实现

    amp-java AMP(异步消息协议)的 Java 实现,包括一些扭曲的 Python 功能,如React器和延迟。 有关 AMP 的更多信息,请... AMP 十进制 = java.math.BigDecimal AMP 日期时间 = java.util.Calendar AMP ListOf = java

    JS的高精度计算(BigDecimal)

    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"))); // / ...

    随机模拟java数据插件Jmockdata.zip

    BigDecimal.class,BigDecimal[].class, BigInteger.class,BigInteger[].class, Date.class,Date[].class 通过对以上基本元数据类型的模拟实现,本框架可以轻松模拟由以上元数据结构组成的BEAN、LIST、SET、...

    bigdecimal转integer.docx

    bigdecimal转integer

    javascrpt BigDecimal 大数运算类 完整版(包括例子)

    其中BigDecimal-all-last.min.js大小为:26KB GZIP压缩后7K,完全可以用于实际生产过程中。 简单例子: var a = new BigDecimal("1500"); var b = new BigDecimal("33"); alert(a.multiply(b)); alert&#...

    SqlMap自动生成小工具SqlMapAutoGen1.0

    rules.put("java.math.BigDecimal", "DECIMAL"); rules.put("java.util.Date", "TIMESTAMP"); 在SqlMapAutoGen类的构造函数中,可以自行修改 3)预先定义了模板 temple.xml (请放在D:/test 目录下) temple.xml定义了...

    JAVA_API1.6文档(中文)

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

    java-BigInteger-BigDecimal类源码

    BigInteger.java BigDecimal.java 文件 源代码

    1_6_zh_CN.CHM

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

Global site tag (gtag.js) - Google Analytics