【问题标题】:Delete a record in access from java从java中删除access中的一条记录
【发布时间】:2014-03-06 01:25:44
【问题描述】:

如何从 java 中删除 access 中的记录?我尝试了以下方法,但似乎不起作用。

public void Delete() throws SQLException {
  st.executeUpdate("DELETE FROM [AssignmentDetails] WHERE ([Entry Date],[Project ID],[Employee],[Hours Worked],[Firm Deadline],[Description of Assignment],[Additional Details],[ID]) = ('" + AbstractVariables.getEntryDate() + "','" + AbstractVariables.getProjectID() + "','" + AbstractVariables.getEmployee() + "','" + AbstractVariables.getHoursWorked() + "','" + AbstractVariables.getFirmDeadline() + "','" + AbstractVariables.getDescription() + "','" + AbstractVariables.getAdditionalDetails() + "','"+AbstractVariables.getID() + "')");
}

【问题讨论】:

    标签: java sql ms-access ms-access-2007


    【解决方案1】:
    try {
        Connection con;
        Statement stmt;
            String url = "jdbc:odbc:GameData.mdb";
        // DATABASE CONNECTION MAGIC :-)
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection(url, "user", "password");
        stmt = con.createStatement();
        // DELETE SOME SOME STUDENT DATA (RARELY USED IN GOOD PRACTICE)
        stmt.executeUpdate("delete from students where phone = '000-0000'");
    
        // DATABASE CLOSE/CLEANUP
        stmt.close();
        con.close();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
    

    【讨论】:

      【解决方案2】:

      您应该使用使用 JDBC 的参数化查询,而不是将其全部变成一个大字符串

      PreparedStatement st=connection.createStatement("DELETE FROM [AssignmentDetails] WHERE [Entry Date]=?, [Project ID]=?, etc...);

      然后在prepared statement上设置参数然后执行

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-05
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 2016-01-12
        相关资源
        最近更新 更多