2016-11-28 67 views
-1

我正在開發一個項目,希望我將Microsoft Access數據庫集成到Java程序中。我已成功連接到數據庫,但是我的SQL語句沒有更新數據庫。我定義了讀取用戶輸入的變量,並將該信息用作WHERE語句的條件。我已將第一個查詢的部分內容取出並得到了積極的結果,但整個聲明拒絕合作。我需要更改第一個查詢以使其運行?UCAExc 3.0.7意外的令牌錯誤

result = statement.executeQuery("SELECT slipNumber FROM Slip WHERE (slipOpen = -1 & slipLength >= " + boatLengthdub + "& slipDepth >= " + boatDepthdub + ")"+ "LIMIT 1"); 

    statement.executeQuery("INSERT INTO Slip (slipOpen, boatID) VALUES (0," + boatIDdub + ")"); 

    System.out.println("Have a" + result); 

回答

1

你似乎是試圖使用,您應該使用SQL關鍵字AND與符號字符(&)。你也應該使用PreparedStatement對象執行參數化查詢,例如,

String sql = 
     "SELECT slipNumber FROM Slip " + 
     "WHERE slipOpen = -1 AND slipLength >= ? AND slipDepth >= ? " + 
     "LIMIT 1"; 
PreparedStatement ps = conn.prepareStatement(sql); 
ps.setDouble(1, boatLengthdub); // assuming that they are Double values 
ps.setDouble(2, boatDepthdub); 
ResultSet rs = ps.executeQuery(); 
if (rs.next()) { 
    System.out.println(rs.getInt("slipNumber")); 
} else { 
    System.out.println("Not found."); 
} 
+0

謝謝Gord,這清除了一切。 – ace7

1

我完全同意。當你執行更新時,我建議使用'statement.executeUpdate(query)'。