public void fenanjilu()throwsClassNotFoundException, SQLException{int batchSize=10;
String DB_URL= "jdbc:mysql://rm-wz9y6yz865wa8n1gd4o.mysql.rds.aliyuncs.com:3306/bcmpuattd?useUnicode=true&useSSL=false&characterEncoding=utf-8";//MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称
Statement stat = null;int ra=0;
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn= DriverManager.getConnection(DB_URL,"bcmpdev","bcmp_123456");
Connection conn2= DriverManager.getConnection(DB_URL,"bcmpdev","bcmp_123456");
//创建游标,所以一定要记得关闭sql变量
PreparedStatement sql=conn.prepareStatement("SELECT LOAN_CONTRACT_NO,forever_urge_no FROM bcmp_urge_current_info where loan_contract_no like 'test%' and loan_contract_no not in (select LOAN_CONTRACT_NO from bcmp_urge_his_info)");
ResultSet rs=sql.executeQuery();//这个是为了将mysql的自动提交给关闭掉//conn2.setAutoCommit(false);
try{
PreparedStatement sql2=null;//prefix 是sql前半段
String prefix = "insert into bcmp_urge_his_info(ID_KEY,LOAN_CONTRACT_NO,overdue_grade,"
+ "handle_type,case_type,urge_info_id,repay_info_id)values";
StringBuffer suffix= newStringBuffer();while(rs.next()){//获取 PreparedStatement sql 执行得到的值。
String LOAN_CONTRACT= rs.getString("LOAN_CONTRACT_NO");//hetong
ra++;//生成sql值 。注意里面的单引号是必须的,单引号代表是字符,没有单引号可能代表的是int
suffix.append("('"+"test7600000"+ra+"','"+LOAN_CONTRACT+"','2"+"','1"+"','1"+"','"+"test700000"+ra+"','"+"test700"+ra+"'),");//生成了5000个值,就进行sql提交
if(ra%5000==0){//拼接成sql 同时将最后多余的一个逗号给去掉
String sql1 = prefix + suffix.substring(0, suffix.length()-1);
System.out.println(sql1+" 插入开始................"+new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss:SSS").format(newDate()));
sql2=conn2.prepareStatement(sql1);
sql2.addBatch();//执行操作
sql2.executeBatch();//提交事务,因有的mysql设置了自动提交,所以这步不需要//conn.commit();//清空上一次添加的数据
suffix = newStringBuffer();
System.out.println(ra+".............插入结束................"+new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss:SSS").format(newDate()));
}
}
}catch(SQLException e) {
e.printStackTrace();
}//关闭
try{if (rs != null) {
rs.close();
}
}catch(SQLException e) {
e.printStackTrace();
}finally{
System.out.println("分案记录");try{if (stat != null) {
stat.close();
}
}catch(SQLException e) {
e.printStackTrace();
}finally{try{if (conn2 != null) {
conn2.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
}