私はjdbctemplateで作業しようとしています。 thisを読むと、コードList<Map> rows = getJdbcTemplate().queryForList(sql);
を使用するパート2に到達しました。私のコードで実装しようとすると、eclipse
はチュートリアルのようにMap
の代わりにMap<String,Object>
を使用するように強制します。Map <String、Object>を単純なマップのように使用する方法
私はjavaに新しいので、データベース列にアクセスする方法がわからない場合はMap<String,Object>
です。
どうすればよいですか?
以下のコードは大丈夫ですか?以下は更新
List<Map<String,Object>> rows = getJdbcTemplate().queryForList(sql);
for (Map<String,Object> row : rows) {
Customer customer = new Customer();
customer.setCustId((Long)(row.get("CUST_ID")));
customer.setName((String)row.get("NAME"));
customer.setAge((Integer)row.get("AGE"));
customers.add(customer);
}
return customers;
は私が
タイプ例外レポート
メッセージ要求処理が失敗し、このコードを取得するエラーです。ネストされた例外は java.lang.ClassCastExceptionがある:java.math.BigDecimalのは、サーバーがこの要求を満たすから を防ぐ内部エラーが発生しました
説明をjava.lang.Stringで にキャストすることはできません。
例外
org.springframework.web.util.NestedServletException:リクエスト 処理が失敗しました。ネストされた例外はjava.lang.ClassCastExceptionです。 java.math.BigDecimalはjava.lang.Stringにキャストできません。 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982) org.springframework.web。 servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) のjavax .servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因
とjava.lang.ClassCastException:java.math.BigDecimalのは com.projet.testjdbc2.ArticleDAO.listerLesArticles(ArticleDAO.java:20) com.projet.testjdbc.HomeController.home2をjava.lang.Stringで にキャストすることはできません(HomeController.java:78) sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) sun.reflect.NativeMethodAccessorImpl.invoke(不明なソース) sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース) れるjava.lang.reflect。メソッド.invoke(不明なソース) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java :133) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java :827) org.springframework.web.servlet.mvc。method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:963) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web .servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.Httpこれらのフィールドのいずれかがに
BigDecimal
であると考えていることは非常に難しいのServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
これが優れているからです。このチュートリアルでは、生の型を使用します。長い時代遅れの悪い習慣。 – GhostCat
このコードは正しく動作しますか? –
@JavaGuynextdoorそれはそうではありません。 'BigDecimal'から' String'への変換エラーのようなものがあります。文字列や逆数として数字を使用しているかのように... – Bloomberg58