2013-07-16 122 views
0

我得到一個空指針異常。我不知道我爲什麼得到它的原因?這是我得到例外的句子「perst = conn.preparedstatemt(sql)」。準備好的語句中的空指針異常

conn = DBHandler.getDBConnection(); 
String nextOccid = ""; 
sql = "select nextOccId from ColdStorage.master_ids"; 
prest = conn.prepareStatement(sql); 
ResultSet rs5 = prest.executeQuery(); 
while (rs5.next()) { 
    nextOccid = rs5.getString("nextOccId"); 
} 

我有一個dbhandler文件,其中有連接字符串,其代碼我已附加在這裏。

public static Connection getDBConnection() throws ClassNotFoundException,   InstantiationException, IllegalAccessException { 
Connection conn = null; 
String strUserID, strUserPwd, strURL = null; 
try { 

     Class.forName("com.mysql.jdbc.Driver"); 
     strUserID = "root"; 
     strUserPwd = ""; 
     strURL = "jdbc:mysql://localhost:3306/ColdStorage? zeroDateTimeBehavior=convertToNull"; 
     conn = DriverManager.getConnection(strURL, strUserID, strUserPwd); 
+2

你在哪一行得到異常?也不要只告訴行號,請確切指出哪一行。完整的堆棧跟蹤將非常有用 –

+1

看起來'conn'爲空(當DriverManager無法獲得連接時可能發生這種情況)。 – Thilo

+0

@Thilo我該如何糾正? – Divyang

回答

4

你有

strURL = "jdbc:mysql://localhost:3306/ColdStorage? zeroDateTimeBehavior=convertToNull"; 

在URL中移除的空間。否則,請仔細檢查它是否是正確的URL和您的用戶名/密碼,並確保您的庫中包含mysql連接器JAR。

+0

我已經包括了所有必需的libraries.n檢查網址了。我想我沒有正確包含dbhandler文件。這可能是問題嗎? – Divyang

+0

您是否嘗試過沒有空間的網址?像'strURL =「jdbc:mysql:// localhost:3306/ColdStorage?zeroDateTimeBehavior = convertToNull」;'?如果是這樣,去你的項目,打開構建路徑,並指向你的MySQL連接器JAR,如果你還沒有。 –

+0

感謝@mark m ...有問題。 – Divyang