准备好的语句中的空指针异常

我在尝试从我的 sql 服务器获取数据时遇到了一个问题,他们在准备好的语句中给出了一个空点异常。我确定这一定是一个菜鸟问题,但请帮忙:)


这是我正在调用的方法


public void notification(){

    int MachCode = 1721;

    try{

        String sql ="Select TimeOn from PRODUCTIONS_MONITOR where MachCode='"+MachCode+"'";

        pst = con.prepareStatement(sql);

        rs = pst.executeQuery();


        while(rs.next()){

            arrCount.add(rs.getInt(1));


        }


        for(int i=0;i<arrCount.size();i++){


             Count = Count + arrCount.get(i);


        }


        if(Count % 10 == 0){


            System.out.println("Time = " + Count);


        }


    }catch(SQLException e){


        e.printStackTrace();


    }


}

这是我的数据库连接


  public static Connection ConnecrDb() {

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 


       Connection con = DriverManager.getConnection("jdbc:sqlserver://10.228.59.2:1433;databaseName=dbNautilus;user=SA;password=KreedaIntimo@2017;");


        System.out.println("Connected to database !");


    } catch (SQLException sqle) {

        System.out.println("Sql Exception :" + sqle.getMessage());

    } catch (ClassNotFoundException e) {

        System.out.println("Class Not Found Exception :" + e.getMessage());

    }


    return null;

}


炎炎设计
浏览 165回答 1
1回答

千巷猫影

您的ConnecrDb()方法将新Connection对象分配给名为的局部变量con,然后从不使用它。然后该方法返回null。您没有展示如何调用方法,但这确实无关紧要,因为方法使用的con 字段notification()要么未分配(因此null),要么分配了null来自的返回值ConnecrDb(),因此null无论哪种方式。鉴于此,您为什么对 value isnull和导致 a感到困惑NullPointerException?关于您的代码的其他一般性评论:如果MachCode是一个整数,那么你为什么要在 SQL 中引用它,即为什么where MachCode='"+MachCode+"'";而不是where MachCode="+MachCode;?如果您正在使用PreparedStatement,为什么不使用?参数标记,因为它们是要使用的?使用 JDBC 时应该使用 try-with-resources。Java 命名约定是变量名以小写字母开头。你的代码应该是:int machCode = 1721;String sql = "select TimeOn from PRODUCTIONS_MONITOR where MachCode = ?";try (PreparedStatement pst = con.prepareStatement(sql)) {&nbsp; &nbsp; pst.setInt(1, machCode);&nbsp; &nbsp; try (ResultSet rs = pst.executeQuery()) {&nbsp; &nbsp; &nbsp; &nbsp; while (rs.next()) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arrCount.add(rs.getInt(1));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}// rest of code here
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java