java – 带有BigDecimal的Spring JDBC queryForObject失败
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 带有BigDecimal的Spring JDBC queryForObject失败,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2153字,纯文字阅读大概需要4分钟。
内容图文
![java – 带有BigDecimal的Spring JDBC queryForObject失败](/upload/InfoBanner/zyjiaocheng/803/aaee62e406f948a5929800499c6505f2.jpg)
Java 1.7/Spring 3.1
看看下面的代码.
BigDecimal value = queryAsObject (BigDecimal.class,
"select balance from financial.accounts where account_id = ?", accountId);
queryAsObject来自抽象父类,它基本上执行CRUD操作.
public <T> T queryAsObject(Class<T> modelClass, String sql, Object... args) {
return jdbcTemplate.queryForObject(sql, new HawkBeanPropertyRowMapper<T>(modelClass), args);
}
相当直接的春天jdbc电话.但是它导致以下异常:
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception in org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [java.math.BigDecimal]:
Is it an abstract class?; nested exception is
java.lang.InstantiationException: java.math.BigDecimal
有根本原因:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.math.BigDecimal]: Is it an abstract class?; nested exception is java.lang.InstantiationException: java.math.BigDecimal
org.springframework.beans.BeanUtils.instantiate(BeanUtils.java:81)
org.springframework.jdbc.core.BeanPropertyRowMapper.mapRow(BeanPropertyRowMapper.java:233)
org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92)
org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:1)
org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:649)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674)
org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:734)
这是什么意思?
解决方法:
我认为JdbcTemplate.queryForObject(String sql,RowMapper< T> rowMapper,Object … args)用于将ResultSet绑定到Beans / POJO.
您需要另一个重载版本queryForObject(String sql,Class< T> requiredType,Object … args),即
public <T> T queryAsScalar(Class<T> scalarClass, String sql, Object... args) {
return jdbcTemplate.queryForObject(sql, scalarClass, args);
}
内容总结
以上是互联网集市为您收集整理的java – 带有BigDecimal的Spring JDBC queryForObject失败全部内容,希望文章能够帮你解决java – 带有BigDecimal的Spring JDBC queryForObject失败所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。