2013-04-05 161 views
0

我想使用数组列表中的值更新我的数据库。以下是我正在尝试的代码。数组列表更新到数据库

String query = "insert into login values(? , ?)"; 
     Connection conn = null; 
     PreparedStatement statement = null; 
     ResultSet resultSet = null; 

     try { 
      conn = getConnection(); 
      for(int i = 0;i < rowlength; i++) 
      { 
       System.out.println(rowList.get(i)); 
      statement = conn.prepareStatement(query); 
      statement.setInt(1, rowList.get(i)); 
      statement.setString(2, rowsList.get(i+2)); 
      resultSet = statement.executeQuery(); 
      } 
     } 

     catch (SQLException e) { 
      try { 
       throw new ServletException("DB interaction failed", e); 
      } catch (ServletException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      if (resultSet != null) try { resultSet.close(); } catch (SQLException ignore) {} 
      if (statement != null) try { statement.close(); } catch (SQLException ignore) {} 
      if (conn != null) try { conn.close(); } catch (SQLException ignore) {} 
       } 

它在控制台中为循环的所有值提取以下错误。

java.lang.ClassNotFoundException: org.postgresql.Driver 
at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1358) 
at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1204) 
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:169) 
at com.aipl.struts.action.ExcelDbAction.getConnection(ExcelDbAction.java:60) 
at com.aipl.struts.action.ExcelDbAction.execute(ExcelDbAction.java:126) 
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) 
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) 
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) 
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) 
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) 
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) 
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) 
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Thread.java:619) 

谁能告诉我什么我做错了或他们是在更新数据库表中的另一种方式。

谢谢////

+5

您必须将Postgresql JDBC驱动程序放在您的类路径中。 – Jesper 2013-04-05 12:26:55

+2

@NewBee您必须在类路径中添加Postgres DB驱动程序 – Chakra 2013-04-05 12:27:03

+1

似乎不包含驱动程序库... – 2013-04-05 12:27:55

回答

2

这个错误出现时的JVM找不到它classpath JDBC驱动程序。请确保你已经配置你的classpath正确

2

你所做错的是PostgreSQL数据库驱动程序是不是在你的应用程序的classpath。基于堆栈跟踪,我猜你正在使用Tomcat;所以看看The PostgreSQL JDBC Interface文档,找出你应该放置在哪里。