Jdbc大数据
import tang.heima.util.JdbcUtil;
/*
* JDBC进行批处理方式有两种:
* 第一个:使用statement进行批处理可以批处理(执行不同类型的sql语句)
* 第二个:使用preparedStatement进行批处理执行的是(同一类型的sql语句)
*
*/
public class BatchTest {
/**
* 可以执行的不同一类型的语句
*/
@Test
public void statementTestBatch() {
Connection conn = null;
Statement stat = null;
try {
//获得连接
conn=JdbcUtil.getConnection();
//Statement可以执行任意的sql语句
stat=conn.createStatement();
stat.addBatch("create database mydb3 character set utf8");
stat.addBatch("use mydb3");
stat.addBatch("create table giels(name varcahr(30),age int,city varchar(30) ");
stat.addBatch("insert into girls values('zhangbozhi',40,'香港')");
stat.addBatch("insert into girls values('lingqinxia',26,'香港')");
stat.addBatch("insert into girls values('zongchuhong','43','北京')");
stat.addBatch("delete from girls where name='zhongbizhi'");
//执行批处理
stat.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
}
finally{
JdbcUtil.release(conn, stat, null);
}
}
/**
* 执行的是同一类型的sql语句
*/
@Test
public void preparedStatementTestBatch() {
Connection conn = null;
PreparedStatement stat = null;
try {
//获得连接
conn = JdbcUtil.getConnection();
conn.prepareStatement("insert into users values(?,?,?,?)");
for (int i = 0; i < 100; i++) {
stat.setInt(1,i);
stat.setString(2, "name"+i);
stat.setString(3, "password"+i);
stat.setString(4, "nickname"+i);
//添加封装
stat.addBatch();
//为了提高效率
if (i%50==0) {
//执行批处理
stat.executeBatch();
//清空已经执行的批处理
stat.clearBatch();
}
}
} catch (Exception e) {
e.printStackTrace();
}
finally{
JdbcUtil.release(conn, stat, null);
}
}
}