UCAExc 3.0.7意外令牌错误

时间:2016-11-28 18:31:11

标签: java sql ms-access jdbc ucanaccess

我正在开发一个项目,希望我将Microsoft Access数据库集成到Java程序中。我已成功连接到数据库但是我的SQL语句没有更新数据库。我已经定义了读取用户输入的变量,并将该信息用作WHERE语句的条件。我已经把第一个问题的部分内容拿出来并得到了积极的结果,但整个声明拒绝合作。对于使其运行的第一个查询,我需要更改哪些内容?

    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);

2 个答案:

答案 0 :(得分: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.");
}

答案 1 :(得分:1)

我完全同意。当您执行更新时,我建议您使用' statement.executeUpdate(查询)'。