if (i % 10 < 2) taskState = 1; else if (i % 10 < 4) taskState = 3; else if (i % 10 < 6) t

动态 未结 0 71
小小草
小小草 LV1 2023年9月23日 23:40 发表
好的,那么以下是修改后的代码,将taskState状态改为等比例分布: 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(TASK_ID_PREFIX); for(int i=0; i<24; i++){ if(i == 21){ // 跳过原序列号位置 continue; } int randomNum = (int)(Math.random() * 16); char hexChar = Character.forDigit(randomNum, 16); sb.setCharAt(i, hexChar); } 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 = 0; i < taskState9Count; i++) { taskStates.add(9); } Collections.shuffle(taskStates); int index = 0; for (String taskId : taskIdSet) { int taskState = taskStates.get(index++); ps.setString(1, taskId); ps.setString(2, TRANS_NO); ps.setString(3, BANK_NO); ps.setString(4, SYSTEM_NO); ps.setInt(5, taskState); ps.addBatch(); System.out.println("Thread " + threadNo + ": Inserted taskId " + taskId + " with taskState " + taskState); }
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复