为什么mysql连接给我一个空指针异常

g6ll5ycj  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(359)

这个问题在这里已经有答案了

将java连接到mysql数据库(14个答案)
两年前关门了。
嗨,我正在尝试从mysql数据库到playframeworkcli获取一些表值。为此,我使用一个控制器和一个类来创建数据连接。第一个方法用于创建连接,而下一个方法用于执行查询。但是,当我尝试执行它们时,它会给我一个空指针异常。我确实读过一些其他的问题,这些问题与此有些接近,但问题是我使用的游戏框架有一个Angular 前端。使添加连接器有点混乱。我确实添加了多次,但它肯定认不出来。我创建了一个新的java文件,并将完全相同的代码复制粘贴到另一个类中,然后使用main方法运行它,它就可以工作了。表名和字段名相互匹配。我们非常感谢任何形式的帮助。
控制器类:

public class HomeController extends Controller {

    public Result addBooks() {
        System.out.println(request().body().asText());
        JsonNode jsonNode = Json.toJson(new AppSummary("Book Added Successfully"));
        JsonNode json = Json.parse(request().body().asText());

        connect newcon = new connect();
        newcon.connection();
        newcon.checkBooks();

        return ok(jsonNode).as("application/json");
    }
}

带有jdbc连接和一个要执行的查询的连接类

package controllers.librarycontrollers;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class connect {
    private Connection conn;
    private Statement stmt;
    private ResultSet rstst;

    public void connection() {

        try {
            System.out.println("connected ");
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/librarymanager", "root", "");
            stmt = conn.createStatement();

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public void checkBooks() {
        try {
            String query = "select * from book";
            rstst = stmt.executeQuery(query);
            System.out.println("records added successfully");
            while (rstst.next()) {
                String title = rstst.getString("booktitle");
                String name = rstst.getString("authorName");

                System.out.println("booktitle:" + title + "authorName:" + name);
            }
            conn.close();
        } catch (Exception c) {
            System.out.println(c);
            System.out.println("not connected");
        }
    }
}

我得到一个空指针异常和“未连接”打印。

dauxcl2d

dauxcl2d1#

您的java应用程序项目中是否有对mysql连接器jar包的引用?否则,加载程序将无法找到类,然后会出现空指针异常。

相关问题