কিছু জেডিবিসি ড্রাইভারকে ফিরে আসার একমাত্র উপায় Statement.RETURN_GENERATED_KEYS
হ'ল নিম্নলিখিত কিছু করা:
long key = -1L;
Statement statement = connection.createStatement();
statement.executeUpdate(YOUR_SQL_HERE, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = statement.getGeneratedKeys();
if (rs != null && rs.next()) {
key = rs.getLong(1);
}
এর সাথে কি করার উপায় আছে PreparedStatement
?
সম্পাদনা করুন
PreparedStatement
নিম্নলিখিত পরিস্থিতি বিবেচনা করে যদি আমি একই কাজ করতে পারি কিনা তা জানতে চেয়েছিলাম :
private static final String SQL_CREATE =
"INSERT INTO
USER(FIRST_NAME, MIDDLE_NAME, LAST_NAME, EMAIL_ADDRESS, DOB)
VALUES (?, ?, ?, ?, ?)";
ইন USER
টেবিল সেখানে এর PRIMARY KEY (USER_ID)
যা একটি BIGINT AUTOINCREMENT
(অত: পর কেন আপনি তা না দেখতে পান SQL_CREATE
স্ট্রিং।
এখন আমি পূরণ ?
ব্যবহার PreparedStatement.setXXXX(index, value)
। আমি ফিরে যেতে চাই ResultSet rs = PreparedStatement.getGeneratedKeys()
। আমি কীভাবে এটি অর্জন করতে পারি?
This method with argument cannot be called on a PreparedStatement or CallableStatement.
এটির অর্থ আমাদের প্রস্তুতির স্টেটমেন্টexecuteUpdate(arg)
ক্লাসে উত্তরাধিকার সূত্রে প্রাপ্ত হওয়া সত্ত্বেও যুক্তি ছাড়াই এক্সিকিউটিউটেড () ব্যবহার করতে হবে তবে আমাদের এটি ব্যবহার করতে হবে না অন্যথায় আমরা এসকিউএলএক্সসেপশন পেয়ে যাব।