第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

準備好的語句中的空指針異常

準備好的語句中的空指針異常

炎炎設(shè)計 2021-09-29 15:04:48
我在嘗試從我的 sql 服務(wù)器獲取數(shù)據(jù)時遇到了一個問題,他們在準備好的語句中給出了一個空點異常。我確定這一定是一個菜鳥問題,但請幫忙:)這是我正在調(diào)用的方法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();    }}這是我的數(shù)據(jù)庫連接  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;}
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

您的ConnecrDb()方法將新Connection對象分配給名為的局部變量con,然后從不使用它。


然后該方法返回null。


您沒有展示如何調(diào)用方法,但這確實無關(guān)緊要,因為方法使用的con 字段notification()要么未分配(因此null),要么分配了null來自的返回值ConnecrDb(),因此null無論哪種方式。


鑒于此,您為什么對 value isnull和導(dǎo)致 a感到困惑NullPointerException?


關(guān)于您的代碼的其他一般性評論:


如果MachCode是一個整數(shù),那么你為什么要在 SQL 中引用它,即為什么where MachCode='"+MachCode+"'";而不是where MachCode="+MachCode;?


如果您正在使用PreparedStatement,為什么不使用?參數(shù)標記,因為它們是要使用的?


使用 JDBC 時應(yīng)該使用 try-with-resources。


Java 命名約定是變量名以小寫字母開頭。


你的代碼應(yīng)該是:


int machCode = 1721;

String sql = "select TimeOn from PRODUCTIONS_MONITOR where MachCode = ?";

try (PreparedStatement pst = con.prepareStatement(sql)) {

    pst.setInt(1, machCode);

    try (ResultSet rs = pst.executeQuery()) {

        while (rs.next()) {

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

        }

    }

}

// rest of code here


查看完整回答
反對 回復(fù) 2021-09-29
  • 1 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號