java - 带参数使用时 JdbcTemplate 更新错误

标签 java spring-mvc

我正在 SpringMVC 数据库应用程序中编码。当我尝试使用带有参数的 JdbcTemplate 对象更新方法将数据插入数据库时​​,在插入数据时出现错误。没有参数编码就可以了,如下:

String sql = "INSERT INTO contact (name, email, address, telephone)"
                + " VALUES ('" + contact.getName() + "', '" + contact.getEmail() + "', '" 
                + contact.getAddress() + "', '" + contact.getTelephone() + "')";
jdbcTemplate.update(sql);

但是当我使用参数时,出现错误:

String sql = "INSERT INTO contact (name, email, address, telephone)"
                    + " VALUES (?, ?, ?, ?)";
jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                contact.getAddress(), contact.getTelephone());

请帮助我!

最佳答案

您必须调整参数。检查下面的示例。

//insert with named parameter
    public void insertNamedParameter(Customer customer){

        String sql = "INSERT INTO CUSTOMER " +
            "(CUST_ID, NAME, AGE) VALUES (:custId, :name, :age)";

        Map<String, Object> parameters = new HashMap<String, Object>();
        parameters.put("custId", customer.getCustId());
        parameters.put("name", customer.getName());
        parameters.put("age", customer.getAge());

        getSimpleJdbcTemplate().update(sql, parameters);

    }

您可以引用以下链接作为引用。

Spring Named Parameters examples in SimpleJdbcTemplate

关于java - 带参数使用时 JdbcTemplate 更新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533937/

相关文章:

java - "=="的 Int 和 Char 比较

java - 如何使用 bootstrap select 在每个 spring mvc3 选择列表中设置所选项目?

jsp - Spring MVC <form :errors/> tag doesn't find error messages

java - 获取 Android 设备的所有者名称

java - 使用 JAXB 编译多个包含相同元素的重复定义的 XSD

java - 如何将 JTable 数据导出到 CSV 文件

java - Spring Oauth2 增强权限

java - 如何在 Spring Boot 中为嵌入式 Jetty 设置 Handler?

java - Spring Security - 从 Tomcat 6 部署到 Tomcat 7 时凭据错误

java - 在 N 个线程中并行运行相同的测试 M 次