import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; @Component public class EquimentModifyBatch { @Autowired private JdbcTemplate jdbcTemplate; /** * 批量添加数据 */ public int batchCreateArticle(final List<Article> articles) { String sql = "INSERT INTO article(title, description) VALUES(?, ?)"; // spring jdbc 帮我们生成了批量插入的 sql 语句, 我们也可以直接使用批量的插入 sql 语句进行批量数据插入 // return jdbcTemplate.batchUpdate(new String[]{sql}); return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement preparedStatement, int i) throws SQLException { Article article = articles.get(i); preparedStatement.setString(1, article.getTitle()); preparedStatement.setString(2, article.getDescription()); } @Override public int getBatchSize() { return articles.size(); } }).length; } /** * 批量修改数据 */ public int batchModfiyEquipment(final List<Equipment> equipments) { if (equipments == null || equipments.size() == 0) { return 0; } String sql = "UPDATE equipment SET status = ? WHERE equ_id = ?"; // spring jdbc 帮我们生成了批量插入的 sql 语句, 我们也可以直接使用批量的插入 sql 语句进行批量数据插入 return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement preparedStatement, int i) throws SQLException { Equipment equipment = equipments.get(i); preparedStatement.setInt(1, equipment.getStatus()); preparedStatement.setString(2, equipment.getEquId()); } @Override public int getBatchSize() { return equipments.size(); } }).length; } /** * 批量删除数据 */ public int batchDeleteArticle(final List<Integer> ids) { String sql = "DELETE FROM article WHERE id = ?"; // spring jdbc 帮我们生成了批量插入的 sql 语句, 我们也可以直接使用批量的插入 sql 语句进行批量数据插入 return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement preparedStatement, int i) throws SQLException { preparedStatement.setInt(1, ids.get(i)); } @Override public int getBatchSize() { return ids.size(); } }).length; } } |