กิจการ
การทำธุรกรรมเป็นหน่วยการดำเนินการเชิงตรรกะที่ประกอบด้วยลำดับการทำงานหนึ่งขั้นตอนหรือหลายขั้นตอน ลักษณะสี่ประการของการทำธุรกรรม: อะตอม, ความสม่ำเสมอ, ไอโซเซชัน, และความทนทานต่อความทนทาน: หน่วยการดำเนินการที่เล็กที่สุดของการประยุกต์ใช้การทำธุรกรรมไม่สามารถแบ่งได้ มันเป็นร่างกายการดำเนินการเชิงตรรกะขั้นต่ำที่ไม่ได้ถูกแบ่งออกเป็นกิจการอีกต่อไป
ความสอดคล้อง: ผลลัพธ์ของการดำเนินการของธุรกรรมจะต้องทำให้ฐานข้อมูลจากความสอดคล้องหนึ่งไปยังสถานะอื่น
ISOITIES: การดำเนินการของแต่ละธุรกรรมไม่ได้ถูกแทรกแซงและการดำเนินการภายในของการทำธุรกรรมใด ๆ จะถูกแยกสำหรับการทำธุรกรรมอื่น ๆ พร้อมกัน นั่นคือ: สถานะกลางของอีกฝ่ายไม่สามารถมองเห็นได้ระหว่างการทำธุรกรรมของการดำเนินการพร้อมกันและกิจการของการดำเนินการพร้อมกันไม่สามารถได้รับผลกระทบซึ่งกันและกัน
ความทนทาน: ความต่อเนื่องเป็นที่รู้จักกันดีว่าการคงอยู่
ประโยคที่เกี่ยวข้องในฐานข้อมูลปกติคือชุดของ DML (ภาษาข้อมูลการผลิตข้อมูล, ภาษาการทำงานของข้อมูล) คำสั่งชุดของ DML นี้จะรักษาความสอดคล้องที่ดีหลังจากการแก้ไข คำสั่ง DDL (ภาษานิยามข้อมูลภาษานิยามข้อมูล) ภาษาของวัตถุข้อมูลได้สร้าง, เปลี่ยนแปลง, ลดลง ภาษาควบคุมข้อมูลภาษาควบคุมข้อมูล) ส่วนใหญ่ให้และเพิกถอนคำสั่ง คำสั่ง DDL และ DCL สามารถใช้ได้มากที่สุดเพราะพวกเขาจะทำให้เกิดการส่งธุรกรรมทันที เมื่อการดำเนินการฐานข้อมูลทั้งหมดที่มีอยู่ในสำนักงานได้รับการดำเนินการสำเร็จการทำธุรกรรมควรส่งเพื่อทำการแก้ไขเหล่านี้มีประสิทธิภาพอย่างถาวร มีสองวิธีในการส่งธุรกรรม: การส่งการแสดงผลและการส่งอัตโนมัติ การส่งการแสดง: ใช้ commit เพื่อส่งการส่งอัตโนมัติ: ดำเนินการ DLL หรือ DCL หรือโปรแกรมจะถูกถอนออกจากการดำเนินการฐานข้อมูลใด ๆ ของฐานข้อมูลใด ๆ ที่มีอยู่ในธุรกรรมควรย้อนกลับเพื่อทำการแก้ไขทั้งหมดในการทำธุรกรรมล้มเหลว มีสองวิธีในการม้วนธุรกรรม: แสดงการย้อนกลับและการย้อนกลับอัตโนมัติ แสดงการย้อนกลับ: ใช้การย้อนกลับเพื่อม้วนโดยอัตโนมัติ: ข้อผิดพลาดของระบบหรือออกจากการบังคับ
ปัญหาที่เป็นไปได้ของการประมวลผลการทำธุรกรรมพร้อมกัน
1. Dirty Read: หนึ่งธุรกรรมอ่านข้อมูลที่ไม่ได้ส่งโดยธุรกรรมอื่น
2. อ่านไม่ได้ซ้ำ: การดำเนินการของธุรกรรมหนึ่งทำให้ข้อมูลต่าง ๆ อ่านสองครั้งก่อนและหลัง
3. Phantom Read: การดำเนินการของธุรกรรมหนึ่งครั้งนำไปสู่ผลลัพธ์ของผลลัพธ์ของผลลัพธ์ของการสืบค้นสองครั้งก่อนและหลังอื่น
ตัวอย่าง:
ในระหว่างการดำเนินการธุรกรรม A และ B:
กลไกการทำธุรกรรม Java JDBC
นำเข้า java.sql.connection; ผู้ใช้สตริงสุดท้าย = "รูท"; string querysql = "query sql"; การดำเนินการของ PSTMTUPDATE = Const.prepareStatement (updateSql); ); pstmtupdate.close (); } ในที่สุด {ลอง {ถ้า (pstmtupdate! = null) {pstmtupdate.close ();} ถ้า (pstmtqury! = null) {pstmtqury.close ();} ถ้า (con! = null) {conn.cl ose (ose) ;}} catch (sqlexception e2) {}}}}}}
การสนับสนุนกิจการของ JDBC
การเชื่อมต่อของ JDBC ยังรองรับสิ่งต่าง ๆ กล่าวอีกนัยหนึ่งการดำเนินการของแต่ละคำสั่ง SQL จะถูกส่งไปยังฐานข้อมูลทันทีซึ่งจะมีประสิทธิภาพอย่างถาวรและไม่สามารถใช้งานได้ ปิดการส่งการเชื่อมต่ออัตโนมัติและเริ่มต้นสิ่งต่าง ๆ วิธีการเชื่อมต่อ setautocommit คือ: การเชื่อมต่อ setautocommit (เท็จ); ผ่านการเชื่อมต่อ getautocommit () เพื่อรับสิ่งต่าง ๆ เมื่อเราเปิดสิ่งต่าง ๆ การดำเนินการฐานข้อมูลที่เสร็จสมบูรณ์ในการเชื่อมต่อปัจจุบันจะไม่ถูกส่งไปยังฐานข้อมูลทันทีและเราจำเป็นต้องเรียกวิธีการเชื่อมต่อ หากมีคำสั่งล้มเหลวคุณสามารถโทรย้อนกลับไปมา หมายเหตุ: หากการเชื่อมต่อพบกับความผิดปกติของ Sqlexception ที่ยังไม่ผ่านกระบวนการระบบจะออกจากผิดปกติและระบบจะย้อนกลับการทำธุรกรรมโดยอัตโนมัติ หากโปรแกรมจับภาพความผิดปกตินี้จำเป็นต้องแสดงธุรกรรมย้อนกลับในการรักษาที่ผิดปกติ การเชื่อมต่อให้วิธีการสำหรับการตั้งค่าจุดบันทึกที่อยู่ตรงกลางของธุรกรรม: SetSavePoint จุด. SavePoint SetSavePoint (ชื่อสตริง): สร้างจุดกลางที่มีชื่อที่ระบุในธุรกรรมปัจจุบันและส่งคืนวัตถุ SavePoint ของจุดกลาง ตามวัตถุจุดกลาง ชื่อการตั้งค่าเป็นเพียงความแตกต่างที่ดีกว่าระหว่างวัตถุจุดกลาง
การสนับสนุนการทำธุรกรรมของ JDBC นั้นสะท้อนให้เห็นในสามด้าน:
1. โหมดการคอมมิวนิสต์อัตโนมัติ
การเชื่อมต่อมีคุณสมบัติอัตโนมัติเพื่อระบุว่าการทำธุรกรรมสิ้นสุดลงเมื่อใด
2. เมื่อข้อ จำกัด อัตโนมัติเป็นจริงเมื่อการดำเนินการของการดำเนินการ SQL อิสระแต่ละรายการเสร็จสิ้นการทำธุรกรรมจะถูกส่งทันทีซึ่งหมายความว่าการดำเนินการ SQL แต่ละครั้งเป็นการทำธุรกรรม
เมื่อใดที่การดำเนินการ SQL อิสระคำนวณข้อกำหนด JDBC จะถูกกำหนดเช่นนี้:
สำหรับ Data Operation Language (DML) และ Data Definition Language (DDL) ทันทีที่มีการดำเนินการประโยค
3. เมื่อข้อ จำกัด อัตโนมัติเป็นเท็จธุรกรรมแต่ละรายการจะต้องแสดงวิธีการโทรเพื่อส่งหรือวิธีการโทรกลับจะปรากฏขึ้นเพื่อย้อนกลับ ค่าเริ่มต้นอัตโนมัติ
ระดับธุรกรรม
JDBC กำหนดระดับการทำธุรกรรมห้ารายการ ::
จุดศูนย์กลาง
JDBC กำหนดอินเทอร์เฟซ SavePoint และให้กลไกการควบคุมธุรกรรมที่ดีขึ้น เมื่อตั้งค่าการออมคุณสามารถย้อนกลับไปยังสถานะที่จุดออมได้ไม่ใช่การทำธุรกรรมทั้งหมดของการย้อนกลับ คุณสามารถสอบถามข้อมูลนี้ได้ ดำเนินการคำสั่งการแก้ไขก่อนดำเนินการสอบถามในเวลานี้เราดำเนินการสอบถามและข้อมูลที่เราเห็นอาจแตกต่างจากสิ่งที่เราแก้ไข เพื่อแก้ปัญหานี้เราต้องแนะนำกลไกการทำธุรกรรม JDBC