Spring SQL使用JdbcTemplate.update()的正确方法



我正在学习这里的教程。我正试图通过一个名为票务系统的独立项目来实现这一目标。所以我创建了这个方法:

public void create(Integer ticketNumber, Date timeOpened, String priorityLevel, String caseOwner) {
    String sql = "insert into user_ticket (ticket_number, opened, priority, case_owner) values (?, ?, ?, ?)";
    jdbcTemplateObject.update(sql, ticketNumber, timeOpened, priorityLevel, caseOwner);
    System.out.println("Created Record Ticket Number = " + ticketNumber + " Time Opened = " + timeOpened + "Priority Level " + 
    priorityLevel + " Case Owner: " + caseOwner);
    return;     
}

但问题是,当我尝试使用这条线时:

jdbcTemplateObject.update(sql, ticketNumber, timeOpened, priorityLevel, caseOwner);

我得到一个错误:

The method update(String, Object[], int[]) in the type JdbcTemplate is not applicable for the arguments (String, Integer, Date, String, String)

我知道我提供的论点可能不适合使用update()方法,我仍在学习SpringJDBC。有人能告诉我,是否有其他方法可以满足我提供的所有论点?

与其在update()中传递变量,不如将所有内容都放在Object[]中,然后传递。

以下是代码片段:

public void create(Integer ticketNumber, Date timeOpened, String priorityLevel, 
                   String caseOwner) {
    String sql = "insert into user_ticket (ticket_number, opened, priority, case_owner) 
                  values (?, ?, ?, ?)";
    Object[] params = {ticketNumber, timeOpened, priorityLevel, caseOwner};
    jdbcTemplateObject.update(sql, params);
    System.out.println("Created Record Ticket Number = " + ticketNumber + 
                       " Time Opened = " + timeOpened + "Priority Level " + 
                       priorityLevel + " Case Owner: " + caseOwner);
}

最新更新