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

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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵