You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSP Servlet登录注册系统连接失败及插入命令未执行问题求助

解决JSP/Servlet登录注册系统的数据库连接问题

看起来你遇到的几个错误是连锁反应,咱们一步步拆解解决:

1. 核心根源:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

这个错误是所有问题的起点——驱动类找不到直接导致连接失败,进而引发空指针异常。分两种情况处理:

如果你用的是MySQL 8.0及以上版本

MySQL 8.x的JDBC驱动做了更新,驱动类名不再是com.mysql.jdbc.Driver,而是com.mysql.cj.jdbc.Driver,同时JDBC URL必须添加时区参数,否则会触发额外报错。修改你的config.java代码:

public Connection connect() {
    Connection con = null;
    try {
        // 替换为新版本驱动类名
        Class.forName("com.mysql.cj.jdbc.Driver");
        // 添加时区参数,记得替换成你的数据库密码
        con = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/jsp?useSSL=false&serverTimezone=UTC", 
            "root", 
            "你的数据库密码"
        );
        System.out.println("Connection Successful");
    } catch (Exception e) {
        System.out.println("Connection unsuccessful");
        System.out.println("" + e);
    }
    return con;
}

如果你用的是MySQL 5.x版本

驱动类名没问题,但要确保jar包位置正确:

  • 把mysql-connector-java-xxx.jar复制到项目的WEB-INF/lib目录下(别只在IDE里添加依赖,部署时服务器只会识别WEB-INF/lib里的包)
  • 确认jar包版本和MySQL版本匹配,比如MySQL 5.7对应mysql-connector-java 5.1.x系列

2. 解决java.lang.NullPointerException

因为驱动加载失败,connect()返回了null,你直接调用con.prepareStatement()就会触发空指针。必须先判断连接是否有效:

public User getUser(String username, String password) {
    User u = new User();
    try {
        con = c.connect();
        // 先检查连接是否正常
        if (con == null) {
            System.out.println("数据库连接失败,无法执行查询");
            return null; // 或者返回空User对象,根据业务调整
        }
        ps = con.prepareStatement("select * from signin where uname=? and pass=?");
        ps.setString(1, username);
        ps.setString(2, password); // 注意你这里变量名写错了:paswword → password
        ResultSet rs = ps.executeQuery();
        while(rs.next()) {
            u.setUsername(rs.getString(1));
            u.setPassword(rs.getString(2));
        }
        // 记得关闭资源,避免连接泄漏
        rs.close();
        ps.close();
        con.close();
    } catch (Exception e) {
        System.out.println(e);
    }
    return u;
}

另外注意代码里的拼写错误:paswword应该改成password,这个小问题也会影响功能。

3. 关于Ant依赖的问题

完全不需要添加Ant依赖!你的问题和Ant没有任何关系,都是JDBC驱动配置和代码逻辑的问题,解决上面两个核心点就可以了。

额外提醒

  • 确认MySQL服务处于启动状态,端口3306正常,数据库jsp和表signin已经创建
  • 注册功能的插入命令执行失败,本质也是连接问题导致的,解决连接后插入逻辑就能正常运行

内容的提问来源于stack exchange,提问作者user13482029

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:03:16