源源子. 2021-12-07 23:48 采纳率: 100%
浏览 146
已结题

Statement st = con.createStatement();页面500,显示空指针异常,如何解决?

问题遇到的现象和发生背景

mysql-connector-java-8.0.26.jar
idea 2020.3
navicat 15
mysql8.0.27
Tomcat 8.5.64

问题相关代码,请勿粘贴截图

JDBCConnection

package lemon.controller;
import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCConnection {
    public Connection getCon(){
        Connection connection = null;
        try{
            connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/stu?useSSL=false&serverTimezone=UTC","root","123456");
        }catch (Exception e){
            e.printStackTrace();
        }
        return connection;
    }
}

JDBCDriver

package lemon.controller;

public class JDBCDriver {
    static {

        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

用户注册

package lemon.servlet;

import lemon.controller.JDBCConnection;
import lemon.controller.JDBCDriver;
import lemon.model.OusersModel;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

//普通用户注册界面
@WebServlet("/OuAddServlet")
public class OuAddServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ResultSet rs = null;
        ArrayList<OusersModel> ousers = new ArrayList<>();
        JDBCDriver driver = new JDBCDriver();
        JDBCConnection connection = new JDBCConnection();
        Connection con = connection.getCon();
        req.setCharacterEncoding("utf-8");
        try {
            //到了statement这一行就显示空指针异常,能搜的都搜了,实在不知道怎么解决
            Statement st = con.createStatement();
            int a= st.executeUpdate("INSERT INTO `stu`.`ouserstable` (`ouname`, `ounum`, `oupwd`) VALUES ('"
                    +req.getParameter("oname")+"', "
                    +req.getParameter("onum")+", '"
                    +req.getParameter("opwd")+"')");
            if (a == 1) {
                resp.sendRedirect("ouCon.jsp");
            }else resp.sendRedirect("ousersIndex.jsp");
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

form表单


<form action="OuAddServlet" method="post">
      <h1>注册</h1>
      <span>请输入您的信息</span>
      <input type="text" id="Username" name="oname" placeholder="姓名"/>
      <input type="text" id="Username02" name="onum" placeholder="账号"/>
      <input type="password" id="Password" name="opwd" placeholder="密码"/>
      <button >注册</button>
    </form>
运行结果及报错内容

img

img

img

我的解答思路和尝试过的方法

重新加载jar包
反复检查驱动代码
检查数据库命名、表名、字段名()

img

我想要达到的结果

弄清楚为什么会报异常

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2021-12-08 00:02
    关注

    驱动类没有找到,驱动包没导入成功吧。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 PdfiumViewer pdf转图片
  • ¥15 利用Java连接API接口总是出问题
  • ¥15 请教一个关于镜头标定,棋盘格格子大小的问题(畸变测试)
  • ¥15 el-table输入多维数组怎么实现
  • ¥15 安装GroudingDINO RuntimeError: Error compiling objects for extension
  • ¥15 关于推送项目到github的问题
  • ¥15 急!C++指针编写相关的问题
  • ¥15 kerberos身份认证配置问题
  • ¥30 用python写一个多签情况下波场的代理资源和回收资源
  • ¥15 怎么在matlab中输出显示泵的流量-扬程和管路损失与流量均在一个表格里