JDBC 批量插入数据

业务场景  

    向数据库中大量插入数据。一次插入一条数据显然效率太低,应该采用批处理的方式插入。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();
			}
		}				
	}
}

猜你喜欢

转载自blog.csdn.net/liyazhen2011/article/details/89847817