好的,那么以下是修改后的代码,将生成18位随机字符:
private static void insertData(Connection conn, int threadNo) throws SQLException {
PreparedStatement ps = conn.prepareStatement("INSERT INTO " + TABLE_NAME + " VALUES(?, ?, ?, ?, ?)");
Set taskIdSet = new HashSet<>();
while(taskIdSet.size() < 100000){
StringBuilder sb = new StringBuilder();
for(int i=0; i<18; i++){
int randomNum = (int)(Math.random() * 36);
char c = (randomNum < 10) ? (char)('0' + randomNum) : (char)('a' + randomNum - 10);
sb.append(c);
}
taskIdSet.add(sb.toString());
}
int taskState1Count = 20000;
int taskState3Count = 20000;
int taskState5Count = 30000;
int taskState7Count = 20000;
int taskState9Count = 10000;
List taskStates = new ArrayList<>();
for (int i = 0; i < taskState1Count; i++) {
taskStates.add(1);
}
for (int i = 0; i < taskState3Count; i++) {
taskStates.add(3);
}
for (int i = 0; i < taskState5Count; i++) {
taskStates.add(5);
}
for (int i = 0; i < taskState7Count; i++) {
taskStates.add(7);
}
for (int i =