JdbcBaseRevpiew系列之JdbcBatch(二)--批处理

时间:2022-05-06 23:04:06

声明: ——这里我用到的JdbcUtil是之前我们在JdbcBase里面进行封装的类,说是我们以后之前创建新的类调用这个封装好的类就可以使用了 之后的这个系列也会用到 这里就不做过多的说明了

//批处理我们用的不是很多 在这里介绍一些简单是使用方法

public class Jdbc2Batch {
public static void main(String[] args) throws SQLException {
Connection conn = JdbcUtil.getConnection();
PreparedStatement pstm = conn.prepareStatement("INSERT INTO stu VALUES (?,?,?);");
pstm.setInt(1, 21);
pstm.setString(2, "大龙");
pstm.setInt(3, 33);

//通过这个方法可以实现批处理操作
//调用这个方法后,会将这sql先存起来,等待执行
pstm.addBatch();

pstm.setInt(1, 22);
pstm.setString(2, "大龙buff");
pstm.setInt(3, 37);

//又存了一条,等待执行
pstm.addBatch();

//再添加一条删除语句到批处理缓存中
pstm.addBatch("DELETE FROM stu WHERE name='大华'");


//执行批处理中存着的sql语句
//批处理中各个sql语句之间执行成功或失败是无联系的
// 即使第一条语句出现主键重复的错误,也不会影响第二条语句将数据插入到数据库中
pstm.executeBatch();


}

@Test
public void t1() throws SQLException {
Connection conn = JdbcUtil.getConnection();
PreparedStatement pstm = conn.prepareStatement("UPDATE stu SET name='小龙' WHERE name='大龙buff'");
//将上面的更新name为大龙buff改为小龙的sql语句
//加入到批处理缓存中
pstm.addBatch();
//再添加一条删除语句到批处理缓存中
pstm.addBatch("DELETE FROM stu WHERE name='大华'");

pstm.executeBatch();

}
}