下面演示的示例将向您展示如何使用该JdbcTemplate.update()方法更新数据库中的记录。此方法返回一个整数值,该整数值指示执行查询时数据库中更新的记录数。
package org.nhooo.example.spring.jdbc; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; import javax.sql.DataSource; import java.sql.Types; import java.util.Date; public class UpdateDemo { public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost/mediadb"; public static final String USERNAME = "root"; public static final String PASSWORD = ""; public static final String QUERY = "UPDATE records SET title = ?, release_date = ? WHERE id = ?"; private DataSource dataSource; public UpdateDemo(DataSource dataSource) { this.dataSource = dataSource; } public static void main(String[] args) { DataSource ds = getDataSource(); UpdateDemo demo = new UpdateDemo(ds); Long id = 2L; String title = "The Beatles 1967 - 1970"; Date releaseDate = new Date(); demo.updateRecord(id, title, releaseDate); } public void updateRecord(Long id, String title, Date releaseDate) { // 创建JdbcTemplate的实例并设置DataSource。 // 我们可以使用模板的update()方法来更新记录 //在数据库中。下面我们使用一个update()方法来接受 // 三个参数:sql查询,参数值和 // 参数数据类型。 JdbcTemplate template = new JdbcTemplate(this.dataSource); Object[] params = {title, releaseDate, id}; int[] types = {Types.VARCHAR, Types.DATE, Types.BIGINT}; int rows = template.update(UpdateDemo.QUERY, params, types); System.out.println(rows + " row(s) updated."); } /** * Returns a data source object. * * @return a DataSource. */ public static DataSource getDataSource() { DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName(UpdateDemo.DRIVER); ds.setUrl(UpdateDemo.URL); ds.setUsername(UpdateDemo.USERNAME); ds.setPassword(UpdateDemo.PASSWORD); return ds; } }