Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การใช้เมธอด setAutoCommit () ใน JDBC คืออะไร


หากคุณคอมมิตฐานข้อมูล มันจะบันทึกการเปลี่ยนแปลงทั้งหมดที่ทำจนถึงจุดนั้น

คุณสามารถคอมมิตฐานข้อมูลโดยใช้ commit() กระบวนการ. เมื่อใดก็ตามที่เกิดปัญหาขึ้น คุณสามารถเปลี่ยนฐานข้อมูลกลับมายังจุดนี้ได้โดยใช้ ย้อนกลับ() กระบวนการ. โดยค่าเริ่มต้น ฐานข้อมูลบางฐานข้อมูลยอมรับฐานข้อมูลโดยอัตโนมัติ แต่ในขณะที่จัดการธุรกรรม คุณต้องคอมมิตฐานข้อมูลด้วยตนเอง

ในสถานการณ์สมมตินี้ คุณสามารถใช้เมธอด setAutoCommit() เมธอดนี้เป็นของอินเทอร์เฟซการเชื่อมต่อ และยอมรับค่าบูลีน

หากคุณส่งค่า true ให้กับวิธีนี้ จะเป็นการเปิดคุณสมบัติ auto-commit ของฐานข้อมูล และหากคุณส่งค่า false ไปที่วิธีนี้ ระบบจะปิดคุณสมบัติ auto-commit ของฐานข้อมูล

คุณสามารถเปิดคุณสมบัติการส่งอัตโนมัติของฐานข้อมูลโดยใช้วิธีนี้เป็น:

Con.setAutoCommit(เท็จ);

ตัวอย่าง

โปรแกรมต่อไปนี้จะแทรกข้อมูลลงในตารางนี้โดยใช้การประมวลผลแบบแบตช์ ที่นี่เราตั้งค่า auto commit false เพิ่มคำสั่งที่จำเป็นในแบตช์ รันแบตช์แล้วคอมมิตฐานข้อมูลด้วยตัวเราเอง

<ก่อน> นำเข้า java.sql.Connection; นำเข้า java.sql.DriverManager; นำเข้า java.sql.Statement; คลาสสาธารณะ BatchProcessing_Statement { โมฆะสาธารณะสาธารณะหลัก (สตริง args []) แสดงข้อยกเว้น { // รับการเชื่อมต่อสตริง mysqlUrl =" jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); //สร้างตารางการจัดส่ง (Product_Name VARCHAR(255), Name_Of_Customer VARCHAR(255), Month_Of_Dispatch VARCHAR(255), ราคา INT, Location VARCHAR(255)); //สร้างคำสั่งวัตถุงบ stmt =con.createStatement(); //การตั้งค่าการคอมมิตเท็จ con.setAutoCommit(เท็จ); //คำสั่งที่จะแทรกบันทึก String insert1 ="INSERT INTO Dispatches ( Product_Name , Name_Of_Customer , " + "Month_Of_Dispatch , Price, Location) VALUES " + "('KeyBoard', 'Amith', 'January', 1000, 'hyderabad') "; String insert2 ="INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " + "Month_Of_Dispatch , Price, Location) VALUES " + "('Earphones', 'SUMITH', 'March', 500, 'Vishakhapatnam')"; String insert3 ="INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " + "Month_Of_Dispatch , Price, Location) VALUES " + "('Mouse', 'Sudha', 'September', 200, 'Vijayawada')"; //การเพิ่มคำสั่งไปยังชุดงาน stmt.addBatch(insert1); stmt.addBatch(insert2); stmt.addBatch(insert3); //ดำเนินการชุดงาน stmt.executeBatch(); //กำลังบันทึกการเปลี่ยนแปลง con.commit(); System.out.println("บันทึกถูกแทรก......"); }}

ผลลัพธ์

เชื่อมต่อแล้ว......แทรกบันทึกแล้ว......