Java get Inserted key from Oracle insert statement

 บ่อยครั้งที่เรา Insert Data ลง table ใน Oracle โดยใช้  Value ที่ create ขึ้นเองที่ฝั่ง Database เช่น พวก Sysdate , Sequence ต่างๆ เป็นต้น บางครั้งถ้าค่าเหล่านี้คือ ID ที่เราต้องการนำไปใช้ต่อจะเกิดปัญหาว่าทางฝั่ง Java ไม่รู้จักค่าเหล่านี้ วันนี้มีตัวอย่างการแก้ปัญหานี้มาฝากครับ

ยกตัวอย่าง เราต้องการ Insert ค่าลง table ด้วย statement นี้

String query = "INSERT INTO test_table (test_id,test_name) VALUES (test_seq.NEXTVAL,'Test')";

เทคนิคที่ต้องทำเพิ่มเติมคือ ตอนสร้าง statement ให้กำหนด Key Field ด้วยตาม ตัวอย่าง

PreparedStatement ps = connection.prepareStatement(query,new String[] { "test_id" });

 หลังจากที่เรา execute update แล้วเราจะสามารถ get ค่า Key ผ่าน Result Set ได้เลยครับ ตามตัวอย่างด้านล่าง 

 ps.executeUpdate()
 ResultSet rs = ps.getGeneratedKeys(); 
 if (null != rs && rs.next()) {
        studentId = rs.getString(1);
 }

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Oracle date format จัด format date ให้แสดง พศ และ เดือน ภาษาไทยหรือตามภาษาที่เราเลือก

java -Xms , java -Xmx กำหมด memory ให้ JVM เพื่อป้องกันปัญหา Out of Memory

Java this กับ super การใช้งานคำสั่ง this กับ super ใน ภาษา Java