java连接Oracle数据库问题
ringa_lee
ringa_lee 2017-04-18 09:03:18
[Java讨论组]
五月 23, 2016 11:09:27 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [HANA.HanaInputOracle] in context with path [/JAVA_HANA] threw exception
java.lang.NullPointerException
    at HANA.HanaInputOracle.doPost(HanaInputOracle.java:59)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
这是报错信息,以下是相对应的java文件

package HANA;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class HanaInputOracle
    */

@WebServlet("/HanaInputOracle")
public class HanaInputOracle extends HttpServlet {

private static final long serialVersionUID = 1L;

/**
    • @see HttpServlet#HttpServlet()
      */

    1. HanaInputOracle() {

         super();
         // TODO Auto-generated constructor stub

      }

      /**

      • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

      • response)
        */

    2. void doGet(HttpServletRequest request, HttpServletResponse response)

             throws ServletException, IOException {
         // TODO Auto-generated method stub

      }

      /**

      • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

      • response)
        */

    3. void doPost(HttpServletRequest request, HttpServletResponse response)

             throws ServletException, IOException {
         // TODO Auto-generated method stub
      
         ORACLE oarcle = new ORACLE();
         Connection conn = oarcle.connoracle();
         PreparedStatement st = null;
      
         USER user = (USER) request.getSession().getAttribute("zb");
      
         String INSERT = "insert into SCM_S901 VALUES('" + user.getSPMON() + "','" + user.getSPTAG() + "','"
      • user.getVTWEG() + "','" + user.getMATNR() + "','" + user.getZXSJE() + "')";

          //String SEC = "select * from SAPRED.S901 where SPMON='201506'";
        
      1. {

              // st.executeUpdate(SEC);
              st.executeUpdate(INSERT);
        
              response.sendRedirect("../result.jsp");
          } catch (SQLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
              response.sendRedirect("../error.jsp");
          }

        }

    }

    ringa_lee
    ringa_lee

    ringa_lee

    全部回复(4)
    PHP中文网

    HanaInputOracle.java

    doPost方法发出来给大家看看。

    大家讲道理

    USER user = (USER) request.getSession().getAttribute("zb");
    这里没判null吧,所以下面insert语句里面取值空指针了,debug user,看是不是null

    大家讲道理
     PreparedStatement st = null;
     这样就完事了?声明了不需要通过connection得到它吗?
     还是代码没贴全?
    伊谢尔伦

    @MaxValue 你好,我的st是得到了值的啊,如下图

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号