public int addFreshStudentsNew(List<Object[]> list) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setPassword("root");
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT");
jdbcTemplate = new JdbcTemplate(dataSource);
System.out.println("start:"+new Date());
String sql = "INSERT INTO class (c_name,insertdate) VALUES (?,now() );";
if (list == null || list.isEmpty()) {
for (int i = 0; i < 200001; i++) {
String strTemp = "Name" + i;
Object[] temp = {strTemp};
list.add(temp);
}
}
int nThreads = 50;
int size = list.size();
ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
List<Future<Integer>> futures = new ArrayList<Future<Integer>>(nThreads);
for (int i = 0; i < nThreads; i++) {
final List<Object[]> insertList = list.subList(size / nThreads * i, size / nThreads * (i + 1));
Callable<Integer> task1 = () -> {
jdbcTemplate.batchUpdate(sql, insertList);
return 1;
};
futures.add(executorService.submit(task1));
}
executorService.shutdown();
System.out.println("end:"+new Date());
if (!futures.isEmpty() && futures != null) {
return 10;
}
return -10;
}
06-18
2094