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

标签 java spring

我正在遵循找到的教程 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/

相关文章:

java - 如何将java监听接口(interface)从localhost更改为IP地址?

java - JAXb、Hibernate 和 bean

java - 重用内存 MappedByteBuffer

java - 记录从无法进一步修改的 Web 服务收到的响应

java - 在泛型中使用继承的有问题的声明

java - 无限启动应用程序android Eclipse

java - GenericFilterBean vs OncePerRequestFilter 何时分别使用?

java - 没有可用的 'org.springframework.cloud.client.discovery.DiscoveryClient' 类型的合格 bean

java - Heroku 上使用 Maven 加载 Postgres 驱动程序

java - @Around注解: Make variable available to joinpoint without changing method signature and use it later