业务场景
向数据库中大量插入数据。一次插入一条数据显然效率太低,应该采用批处理的方式插入。JDBC中的Statement支持addBatch(), executeBatch()和clearBatch()。
代码实例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashSet;
import java.util.Set;
public class ConnectionJDBC {
/**
* @param args
*/
//驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
public static final String DBURL = "jdbc:mysql://192.168.0.4:3306/myDB";
//连接数据库的用户名
public static final String DBUSER = "root";
//连接数据库的密码
public static final String DBPASS = "";
public static void main(String[] args) throws Exception {
Connection con = null;
Statement stmt = null;
Set<String> users = new HashSet<String>();
users.add("April");
users.add("Harris");
users.add("Rose");
try {
//1、加载数据库驱动程序
Class.forName(DBDRIVER);
//2、连接数据库
con = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
//3、创建Statement
stmt = con.createStatement();
for(String user:users)
{
stmt.addBatch("insert into person(name) values('" + user + "')");
}
//4、执行SQL语句
stmt.executeBatch();
stmt.clearBatch();
}catch(SQLException e) {
//5、异常处理
}
finally {
//6、清理资源
if(con !=null)
{
con.close();
}
if(stmt!=null)
{
stmt.close();
}
}
}
}