package com.ye;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class FindImp {
public List<List<String>> getUserList(){
List<List<String>> list = new ArrayList<List<String>>();
String sql="select ID,LOGINNO,NAME,LOGINPWD from t_user";
Connection conn=DBUtil.getConObpm();
PreparedStatement pst = null;
ResultSet rs =null;
try {
pst=conn.prepareStatement(sql);
rs= pst.executeQuery();
String[] columu = {"ID","LOGINNO","NAME","LOGINPWD"};
int i=0;
while(rs.next()){
List<String> minList = new ArrayList<String>();
for(String each:columu){
minList.add(rs.getString(each));
}
list.add(minList);
i++;
if(i%500==0){ //设置的每次提交大小为500
executeManySql(list);
list.removeAll(list);
System.out.println(i);
}
}
//别忘了提交剩余的
executeManySql(list);
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pst.close();
conn.close();
System.out.println("关闭jdbc");
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
private void executeManySql(List<List<String>> list) throws SQLException {
Connection con = DBUtil.getConSqlite();
con.setAutoCommit(false);
Statement stat = null;
String sql1="insert into userInfo(id,user_login,user_name,password) values (?,?,?,?)";
PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql1);
System.out.println("aiya");
for (List<String> minList: list) {
for(int i=0;i<minList.size();i++){
pst.setString(i+1, minList.get(i));
}
// 把一个SQL命令加入命令列表
pst.addBatch();
}
// 执行批量更新
pst.executeBatch();
// 语句执行完毕,提交事务
con.commit();
pst.close();
con.close();//一定要记住关闭连接
}
public static void main(String[] args) {
FindImp aa=new FindImp();
aa.getUserList();
}
}