English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

معالجةالبايتJDBC(Batch)

يُسمحلبشكلالبايتجمعجملSQLالمرتبطةويعرضهابإتصال واحدمعالقاعدةالبيانات.

عندإرسالعدةجملSQLإلىقاعدةالبياناتفي一次性،يمكنتقليلتكاليفالإتصال،بالتاليزيادةالسرعة.

  • لايحتاجمكبرنامجالتحكمJDBCإلىدعمهذاالخصائص. يجباستخدامطريقةDatabaseMetaData.supportsBatchUpdates()لتحديدإذاكانالقاعدةالبياناتالهدف تدعممعالجةتحديثالباقة. إذاكانبرنامجالتحكمJDBCيدعمهذاالخصائص،فسيقومبالعودةبالصحيةبصيغةtrue.

  • استخدامStatement،PreparedStatementوCallableStatementمетодaddBatch()لإضافةجملةفرديةإلىالبايت،ويستخدمexecuteBatch()لإجراءتنفيذجميعالجملالمجمعة.

  • ي�回 أرقامًا صحيحة في مصفوفة، حيث يمثل كل عنصر عدد التحديثات في تعليمات update المحددة.

  • مثلما يمكنك إضافة تعليمات إلى البatch للمعالجة، يمكنك أيضًا استخدام طريقة clearBatch () لإزالة هذه التعليمات. تقوم هذه الطريقة بإزالة جميع التعليمات التي تم إضافتها باستخدام طريقة addBatch ()، ولكن لا يمكنك اختيار التعليمات التي تريد إزالتها.

استخدام كائن الجملة للبatch

هذه هي سلسلة الخطوات التقليدية لاستخدام البatch مع كائن Statement-

  • استخدام هذينcreateStatement()يتم إنشاء كائن Statement.

  • استخدم setAutoCommit () لضبط auto-commit على false.

  • أضف أي عدد من تعليمات SQL إلى البatch باستخدام طريقة addBatch () على الكائن الجملة المكتسبة.

  • استخدم طريقة executeBatch () لتنفيذ جميع تعليمات SQL المضافة.

  • في النهاية، استخدمcommit()يتم تقديم جميع التغييرات.

مثال

يقدم هذا المقطع من الكود مثالاً على كيفية استخدام كائن Statement للتحديثات الجماعية-

// إنشاء كائن الجملة
Statement stmt = conn.createStatement();
// ضبط التسليم التلقائي على false
conn.setAutoCommit(false);
//إنشاء جملة SQL
String SQL = "INSERT INTO Employees (id, first, last, age) " +
             "VALUES(200,'Zia', 'Ali', 30)";
// إضافة تعليمات SQL أعلاه إلى البatch.
stmt.addBatch(SQL);
// إنشاء تعليمات SQL أخرى
String SQL = "INSERT INTO Employees (id, first, last, age) " +
             "VALUES(201,'Raj', 'Kumar', 35)";
// إضافة تعليمات SQL أعلاه إلى البatch.
stmt.addBatch(SQL);
// إنشاء تعليمات SQL أخرى
String SQL = "UPDATE Employees SET age = 35 " +
             "WHERE id = 100";
// إضافة تعليمات SQL أعلاه إلى البatch.
stmt.addBatch(SQL);
// إنشاء مصفوفة int [] لحفظ القيم المعدة
int[] count = stmt.executeBatch();
//تقديم جملة واضحة لتطبيق التغييرات
conn.commit();

للتفهم بشكل أفضل، دعونا ندرسكود مثال للمعالجة الجماعية.

استخدم كائن PrepareStatement للبatch

هذه هي سلسلة الخطوات التقليدية لاستخدام البatch مع كائن PrepareStatement-

  1. أنشئ تعليمات SQL باستخدام الدوال المعروفة.

  2. أنشئ كائن PrepareStatement باستخدام أي طريقة PrepareStatement().

  3. استخدم setAutoCommit () لضبط auto-commit على false.

  4. أضف أكبر قدر ممكن من تعليمات SQL إلى القائمة باستخدام طريقة addBatch () على الكائن الجملة المكتسبة.

  5. استخدم طريقة executeBatch () لتنفيذ جميع تعليمات SQL المضافة.

  6. في النهاية، استخدمcommit()يتم تقديم جميع التغييرات.

يقدم هذا الكود مثالاً على تحديث الجلسات الجماعية باستخدام كائن PreparedStatement-

//إنشاء جملة SQL
String SQL = "INSERT INTO Employees (id, first, last, age) " +
             "VALUES(?, ?, ?, ?)";
//إنشاء كائن PreparedStatemen
PreparedStatemen pstmt = conn.prepareStatement(SQL);
//تعيين التسليم التلقائي على false
conn.setAutoCommit(false);
//تعيين المتغيرات
pstmt.setInt(1, 400);
pstmt.setString(2, "Pappu");
pstmt.setString(3, "Singh");
pstmt.setInt(4, 33);
//إضافة إلى المعاملات الجماعية
pstmt.addBatch();
//تعيين المتغيرات
pstmt.setInt(1, 401);
pstmt.setString(2, "Pawan");
pstmt.setString(3, "Singh");
pstmt.setInt(4, 31);
//إضافة إلى المعاملات الجماعية
pstmt.addBatch();
//إضافة المزيد من المعاملات الجماعية
.
.
.
.
//إنشاء مصفوفة int[] لتح Konsol الارقام المعدة
int[] count = stmt.executeBatch();
//تقديم جملة واضحة لتطبيق التغييرات
conn.commit();

للتفهم بشكل أفضل، دعونا ندرسكود مثال للمعالجة الجماعية.