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;
}
}
|