您的位置:首页 > 数据库 > MySQL

mysql批量插入数据

2017-07-31 10:11 106 查看
package gt.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

public class JdbcMysql {
//list集合里是sql语句
public void run(List<String> insertSqLs) {
// 声明Connection对象
Connection con = null;
ResultSet rs = null;
// 驱动程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名mydata  ?useUnicode=true&characterEncoding=utf-8格式为UTF-8
String url = "jdbc:mysql://xxx.xxx.xx.xxx:xxxx/gtweb_zs1?useUnicode=true&characterEncoding=utf-8";
// MySQL配置时的用户名
String user = "root";
// MySQL配置时的密码
String password = "xxxxx";
// 遍历查询结果集
try {
// 加载驱动程序
Class.forName(driver);
// 1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url, user, password);
if (!con.isClosed())
System.out.println("成功连接数据源!");
// 2.创建statement类对象,用来执行SQL语句!!
Statement statement = con.createStatement();
//自动提交设为false,批处理一定要写
con.setAutoCommit(false);
// 要执行的SQL语句
// 3.ResultSet类,用来存放获取的结果集!!
final int batchSize = 2000;			//一次批处理提交2000条
int count = 0;
for (String string : insertSqLs) {
System.out.println(string);
statement.addBatch(string);
if(++count % batchSize == 0) {
//一次执行
statement.executeBatch();
con.commit();
System.out.println("一次提交成功!");
}
}

statement.executeBatch();
con.commit();
System.out.println("全部成功");
}catch (Exception e) {
e.printStackTrace();
try {
if(con != null){
con.rollback();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
} finally {
try {
if(rs != null){
rs.close();
}
if(con != null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: