2016-11-28 59 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)'。