mysql批量插入数据

来源:互联网 发布:淘宝上有没有猛将气 编辑:程序博客网 时间:2024/05/16 03:08
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-8String 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();}}}}

原创粉丝点击