org.apache.jasper.JasperException: java.math.BigDecimal

07-10-10 little1234
按照最简单的servlet_jdon_jdbc例子,自己照猫画虎做了一个简单的应用,唯一更改就是映射的数据库里的表不同。我的表多了一些numeric(5), datetime, varchar(255) 之类的数据类型。

运行报错:

2007-10-10 15:58:15,515 INFO [TP-Processor8] builder.ContainerDirector (ContainerDirector.java:71) - <======== Jdon Framework started successfully! =========>

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

org.apache.jasper.JasperException: java.math.BigDecimal

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)

请问:

1. 该怎么查错在哪?

2. 不同的数据类型在Model里应该映射成什么不同的类型? 我现在全部映射为String. 在jdbcDAO里,设为

ret.setName((String) map.get("name"));

ret.setOrder( map.get("Order").toString());

ret.setDUpdate((String) map.get("dUpdate"));

这样行吗?

数据库里数据类型为 name:varchar order:numeric(5) dUpdate:datetime

little1234
2007-10-10 16:45
banq, 能不能告诉一下这三种数据类型怎么映射?

我将Model里对应numeric(5)的数据全部设成了BigDecimal类型, 还是出错!

而且,无法debug,不知道错在哪?!

谢谢。

banq
2007-10-11 11:33
持久层你就不能使用Jdon框架的JdbcTemp来实现了,自己直接用正常JDBC或者Hibernate就可以。

jdbctemp中没有加入NUMERIC支持。JdbcTemp主要为快速完成一些常见小的应用而设立的,为约定优于配置而设立,但是约定不可能适合所有场景,所以就必须自己动手定制了。

或下载最新JF,已经加入这个类型支持,可以自己做一个JdbcUtil,然后set到JdctTemp进去。这是可扩展。

[该贴被banq于2007年10月11日 15:14修改过]

little1234
2007-11-08 18:18
》可以自己做一个JdbcUtil,然后set到JdctTemp进去

可以详细点解释怎么做这个吗?

谢谢!

little1234
2007-11-09 10:28
已经下了10.25日版的最新JF了, 还是出BigDecimal 问题。

》可以自己做一个JdbcUtil,然后set到JdctTemp进去

能否一步一步1,2,3 详细告知怎么做呢?

谢谢

little1234
2007-11-16 14:24
找到自己的问题了。 10.25日版的最新JF已无BigDecimal 问题, 是我自己的code里出现的BigDecimal 错。

谢谢!

猜你喜欢