मुझे पता है कि आप कुछ अलग कर रहे हैं, लेकिन सम्मिलित करने के लिए कुछ छोटी युक्तियाँ:
जावा में INSERT की जेनरेट की गई कुंजियों को लाने के लिए एक डेटाबेस स्वतंत्र तरीका है। यह बहु-उपयोगकर्ता वातावरण में MAX को बाद में या पहले लेने से कहीं अधिक सुरक्षित है।
गलत आईडी के लिए परिदृश्य:
- पहला INSERT
- दूसरा INSERT
- पहले चुनें
- दूसरा चयन
सुरक्षा (एसक्यूएल इंजेक्शन) और भागने (यदि नाम में सिंगल कोट या बैकस्लैश या ऐसा है तो) के लिए एक तैयार स्टेटमेंट का भी उपयोग करें।
और try-withresources हमेशा चीजों को बंद कर देता है, यहां तक कि वापसी या अपवाद पर भी।
String sql = "INSERT INTO account (name, balance) VALUES (?, 0)";
try (PreparedStatement stmt = conn.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS)) {
stmt.setString(1, name);
int updateCount = stmt.executeUpdate(); // 1
try (ResultSet id = stmt.getGeneratedKeys()) {
id_user = 0;
if (id.next()) { // 'if' as just 1 row inserted.
id_user = id.getInt(1); // 1 key per row.
}
}
System.out.println(id_user);
}