我是靠谱客的博主 畅快飞机,最近开发中收集的这篇文章主要介绍在Eclipse中测试MySQL-JDBC(10)preparestatement批处理(同时执行多条sql语句),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
【需求:在数据库中插入1050条数据】
【声明:数据库使用前面文章的数据库和表,不要删,下面的java中没有建数据库和标的功能】
【其他的配置文件及java文件同前面的】
注意:使用PreparedStatement添加批处理的时候不需要添加sql
如:
Statement批处理:st.addBatch(sql)
而PreparedStatement批处理:st.addBatch()
【 java文件未改变,单元测试方法发生了改变】
package com.flying.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import org.junit.Test;
public class JdbcBatch {
@Test
public void prepareStatementBatch(){
Connection con = null;
PreparedStatement st = null;
try {
con = JdbcUtils.getConnection();
String sql1 ="use batch_test";
String sql2 = "insert into batch values(null,?,?)";//总结中的语句相同
st = con.prepareStatement(sql2);
st.execute(sql1);
for (int i = 1; i <= 1050; i++) {
st.setString(1, "name"+i);//总结中的参数1
st.setString(2, "abc"+i);//总结中的参数2
随着i的变化而不同
st.addBatch();
if (i%1000==0) {
st.executeBatch();
st.clearBatch();
}
}
st.executeBatch();
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtils.release(con, st);
}
}
}
【执行结果】查看数据库和表,发现表中添加了1050个数据
【命令解释】
Connection.prepareStatement(sql)方法: 预编译sql语句
PreparedStatement.addBatch(): 增加批处理
PreparedStatement.executeBatch(): 执行批处理命令
PreparedStatement.clearBatch();清除批处理的命令
PrepareStatement批处理的优缺点:
优点:发送的是预编译后的SQL语句,执行效率高。
缺点:只能在SQL语句相同,当参数不同的批处理中使用。【实际中参数可以相同,一般参数相同没有什么意义】
因此这种批处理的方式经常适用于在同一个表中批量插入或者更新数据。
最后
以上就是畅快飞机为你收集整理的在Eclipse中测试MySQL-JDBC(10)preparestatement批处理(同时执行多条sql语句)的全部内容,希望文章能够帮你解决在Eclipse中测试MySQL-JDBC(10)preparestatement批处理(同时执行多条sql语句)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复