Java JDBC 进行批量跟新操作
来源:互联网 发布:java求质数 编辑:程序博客网 时间:2024/06/17 18:09
//Java JDBC 进行批量跟新操作
1. 先定义一个DAO接口专门为某个model数据集的增删改查进行服务。
public interface IAdStatDAO {
// 可以用于增删改
void updateBatch(List<AdStat> adStats);
}
2. // 对数据进行批量的更新
public class AdStatDAOImpl implements IAdStatDAO {
@Override
public void updateBatch(List<AdStat> adStats) {
JDBCHelper jdbcHelper = JDBCHelper.getInstance();
// 2.1 区分开来哪些是要插入的,哪些是要更新的
List<AdStat> insertAdStats = new ArrayList<AdStat>();
List<AdStat> updateAdStats = new ArrayList<AdStat>();
//2.2 先进行查询语句
String selectSQL = "SELECT count(*) "
+ "FROM ad_stat "
+ "WHERE date=? "
+ "AND province=? "
+ "AND city=? "
+ "AND ad_id=?";
//2.3 对数据进行查询根据结果进行分别得更新操作。
for(AdStat adStat : adStats) {
// 此处必须是final修饰
final AdStatQueryResult queryResult = new AdStatQueryResult();
Object[] params = new Object[]{adStat.getDate(),
adStat.getProvince(),
adStat.getCity(),
adStat.getAdid()};
//2.4 进行查询操作
jdbcHelper.executeQuery(selectSQL, params, new JDBCHelper.QueryCallback() {
@Override
public void process(ResultSet rs) throws Exception {
if(rs.next()) {
int count = rs.getInt(1);
queryResult.setCount(count);
}
}
});
int count = queryResult.getCount();
//2.5 分别放到对应的数组中
if(count > 0) {
updateAdStats.add(adStat);
} else {
insertAdStats.add(adStat);
}
}
// 对于需要插入的数据,执行批量插入操作
String insertSQL = "INSERT INTO ad_stat VALUES(?,?,?,?,?)";
List<Object[]> insertParamsList = new ArrayList<Object[]>();
for(AdStat adStat : insertAdStats) {
Object[] params = new Object[]{adStat.getDate(),
adStat.getProvince(),
adStat.getCity(),
adStat.getAdid(),
adStat.getClickCount()};
insertParamsList.add(params);
}
jdbcHelper.executeBatch(insertSQL, insertParamsList);
// 对于需要更新的数据,执行批量更新操作
String updateSQL = "UPDATE ad_stat SET click_count=? "
+ "FROM ad_stat "
+ "WHERE date=? "
+ "AND province=? "
+ "AND city=? "
+ "AND ad_id=?";
List<Object[]> updateParamsList = new ArrayList<Object[]>();
for(AdStat adStat : updateAdStats) {
Object[] params = new Object[]{adStat.getClickCount(),
adStat.getDate(),
adStat.getProvince(),
adStat.getCity(),
adStat.getAdid()};
updateParamsList.add(params);
}
// jin
jdbcHelper.executeBatch(updateSQL, updateParamsList);
}
}
- Java JDBC 进行批量跟新操作
- java使用JDBC连接mysql并且进行批量增删改操作
- 关于使用JDBC的API进行批量操作的优化
- JDBC批量操作
- JDBC批量操作
- jdbc 执行批量操作
- JDBC批量操作数据
- spring JDBC批量操作
- jdbc批量操作
- jdbc的批量操作
- JDBC 批量操作
- JDBC批量操作
- mysql JDBC批量操作
- jdbc批量操作
- JDBC批量操作
- jdbc的批量操作
- Java通过JDBC 进行MySQL数据库操作
- 使用Jdbc进行批量处理
- java synchronized详解
- 安卓小项目之天气预报
- Android开发中的问题总结
- 神奇的“空格”
- C学习笔记
- Java JDBC 进行批量跟新操作
- 【图像识别】【读论文】
- ActivityLifecycleCallbacks管理某些Aty的周期
- 批处理(bat)常用指令及其作用
- 先序中序得到后序 (MEDIUM)
- (学习笔记) 数组创建
- 使用ListView实现滚筒选择器效果
- CODEVS 1068乌龟棋
- 网址收藏