1. ธุรกรรม Java คืออะไร?
ความเชื่อทั่วไปคือการทำธุรกรรมเกี่ยวข้องกับฐานข้อมูลเท่านั้น
ธุรกรรมต้องเป็นไปตามหลักการ ACID ที่ ISO/IEC กำหนด ACID เป็นตัวย่อของอะตอมมิก ความสม่ำเสมอ การแยกตัว และความทนทาน ความเป็นอะตอมมิกของธุรกรรมหมายความว่าความล้มเหลวใด ๆ ในระหว่างการดำเนินการธุรกรรมจะทำให้การแก้ไขใด ๆ ที่ทำโดยธุรกรรมกลายเป็นโมฆะ ความสม่ำเสมอหมายความว่าเมื่อธุรกรรมล้มเหลว ข้อมูลทั้งหมดที่ได้รับผลกระทบจากธุรกรรมควรได้รับการกู้คืนกลับสู่สถานะก่อนดำเนินธุรกรรม การแยกออกจากกันหมายความว่าการเปลี่ยนแปลงข้อมูลระหว่างการทำธุรกรรมจะไม่ปรากฏให้ธุรกรรมอื่น ๆ มองเห็นได้ก่อนที่จะมีการทำธุรกรรม ความคงอยู่หมายความว่าสถานะของข้อมูลที่ส่งมาควรถูกต้องเมื่อการดำเนินการธุรกรรมล้มเหลว
ความเข้าใจที่แพร่หลายคือธุรกรรมคือชุดของหน่วยปฏิบัติการปรมาณู จากมุมมองของฐานข้อมูล มันเป็นชุดของคำสั่ง SQL อย่างใดอย่างหนึ่งทั้งหมดได้รับการดำเนินการสำเร็จ หากหนึ่งในคำสั่งมีข้อผิดพลาดในการดำเนินการด้วยเหตุผลบางประการ คำแนะนำที่ดำเนินการก่อนหน้านี้จะถูกยกเลิก คำตอบที่ง่ายกว่าคือ: การดำเนินการทั้งหมดสำเร็จ หรือถูกยกเลิกและไม่ได้ดำเนินการ
เนื่องจากแนวคิดของธุรกรรมมาจากฐานข้อมูล ธุรกรรม Java คืออะไร? การเชื่อมต่อคืออะไร?
ในความเป็นจริง หากระบบแอปพลิเคชัน Java ต้องการดำเนินการฐานข้อมูล ระบบจะดำเนินการผ่าน JDBC การเพิ่ม การแก้ไข และการลบทั้งหมดจะดำเนินการทางอ้อมผ่านวิธีการที่เกี่ยวข้อง และการควบคุมธุรกรรมจะถูกถ่ายโอนไปยังโค้ดโปรแกรม Java ตามลำดับ ดังนั้นธุรกรรมการดำเนินการฐานข้อมูลจึงมักเรียกว่าธุรกรรม Java
2. เหตุใดจึงต้องมีการทำธุรกรรม
ธุรกรรมถูกเสนอเพื่อแก้ไขการดำเนินการรักษาความปลอดภัยของข้อมูล การควบคุมธุรกรรมคือการควบคุมการเข้าถึงข้อมูลอย่างปลอดภัย นี่คือตัวอย่างง่ายๆ: ตัวอย่างเช่น ในธุรกิจการโอนเงินผ่านธนาคาร บัญชี A ต้องการโอนเงิน 1,000 หยวนจากบัญชีของตนเองไปยังบัญชี B ยอดคงเหลือในบัญชี A จะต้องลบออกด้วย 1,000 หยวนก่อน จากนั้นจึงจะต้องลบยอดคงเหลือในบัญชี B เพิ่มขึ้น 1,000 หยวน หากมีปัญหาในเครือข่ายระดับกลาง การหักเงิน 1,000 หยวนจากบัญชีของ A ได้สิ้นสุดลงแล้ว และการดำเนินการของ B ล้มเหลวเนื่องจากเครือข่ายหยุดชะงัก ธุรกิจทั้งหมดจะล้มเหลว และต้องทำการควบคุมเพื่อให้จำเป็นต้องยกเลิกการโอน ธุรกิจของบัญชีของ A สิ่งนี้สามารถรับประกันความถูกต้องของธุรกิจ เพื่อให้การดำเนินการนี้เสร็จสมบูรณ์ จำเป็นต้องมีการลดเงินทุนในบัญชี A และการเพิ่มเงินทุนในบัญชี B ให้เป็นธุรกรรมเดียว จึงรักษาความปลอดภัยของข้อมูล
3. ประเภทของธุรกรรม Java
ธุรกรรม Java มีสามประเภท: ธุรกรรม JDBC, ธุรกรรม JTA (Java Transaction API) และธุรกรรมคอนเทนเนอร์
1. ธุรกรรม JDBC
ธุรกรรม JDBC ถูกควบคุมโดยใช้อ็อบเจ็กต์การเชื่อมต่อ อินเทอร์เฟซการเชื่อมต่อ JDBC (java.sql.Connection) มีโหมดธุรกรรมสองโหมด: การส่งอัตโนมัติและการส่งด้วยตนเอง java.sql.Connection มีวิธีการต่อไปนี้เพื่อควบคุมธุรกรรม:
โมฆะสาธารณะ setAutoCommit (บูลีน)
บูลีนสาธารณะ getAutoCommit()
โมฆะสาธารณะกระทำ ()
โมฆะสาธารณะย้อนกลับ ()
เมื่อใช้การแบ่งเขตธุรกรรม JDBC คุณสามารถรวมคำสั่ง SQL หลายคำสั่งให้เป็นธุรกรรมเดียวได้ ข้อเสียประการหนึ่งของธุรกรรม JDBC คือขอบเขตของธุรกรรมถูกจำกัดอยู่ที่การเชื่อมต่อฐานข้อมูลเดียว ธุรกรรม JDBC ไม่สามารถขยายหลายฐานข้อมูลได้