我正在遵循找到的教程 here 。我正在尝试通过我正在开发的一个名为“票务系统”的独立项目来遵循它。所以我创建了这个方法:
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。有人可以告诉我是否有其他方法可以使用此方法来满足我提供的所有参数?
最佳答案
您应该将所有内容放入 Object[]
中,然后传递它,而不是在 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 (?, ?, ?, ?)";
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);
}
关于java - Spring SQL 使用 JdbcTemplate.update() 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36376916/