logo

البرنامج التعليمي لقالب Jdbc الربيعي

  1. قالب الربيع JDBC
  2. فهم الحاجة إلى قالب Spring JDBC
  3. الاستفادة من قالب الربيع JDBC
  4. فئات قالب JDBC
  5. مثال لفئة JdbcTemplate

ربيع JdbcTemplate هي آلية قوية للاتصال بقاعدة البيانات وتنفيذ استعلامات SQL. يستخدم JDBC API داخليًا، ولكنه يزيل الكثير من مشكلات JDBC API.

مشاكل JDBC API

مشاكل JDBC API هي كما يلي:

  • نحتاج إلى كتابة الكثير من التعليمات البرمجية قبل وبعد تنفيذ الاستعلام، مثل إنشاء اتصال، وبيان، وإغلاق مجموعة النتائج، والاتصال وما إلى ذلك.
  • نحن بحاجة إلى تنفيذ تعليمات برمجية لمعالجة الاستثناءات في منطق قاعدة البيانات.
  • نحن بحاجة للتعامل مع الصفقة.
  • يعد تكرار كل هذه الرموز من منطق قاعدة بيانات إلى آخر مهمة تستغرق وقتًا طويلاً.

الاستفادة من قالب الربيع Jdbc

يعمل Spring JdbcTemplate على التخلص من جميع المشكلات المذكورة أعلاه الخاصة بـ JDBC API. يوفر لك طرقًا لكتابة الاستعلامات مباشرةً، مما يوفر الكثير من العمل والوقت.


نهج الربيع Jdbc

يوفر إطار عمل Spring الأساليب التالية للوصول إلى قاعدة بيانات JDBC:

  • JdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcTemplate
  • SimpleJdbcInsert وSimpleJdbcCall

فئة قالب Jdbc

إنها الفئة المركزية في فئات دعم Spring JDBC. إنه يعتني بإنشاء الموارد وتحريرها مثل إنشاء كائن الاتصال وإغلاقه وما إلى ذلك. لذلك لن يؤدي ذلك إلى أي مشكلة إذا نسيت إغلاق الاتصال.

يعالج الاستثناء ويوفر رسائل الاستثناء الإعلامية بمساعدة فئات الاستثناء المحددة في ملف org.springframework.dao طَرد.

يمكننا تنفيذ جميع عمليات قاعدة البيانات بمساعدة فئة JdbcTemplate مثل الإدراج والتحديث والحذف واسترجاع البيانات من قاعدة البيانات.

دعونا نرى أساليب فئة الربيع JdbcTemplate.

لا.طريقةوصف
1)تحديث int العام (استعلام سلسلة)يستخدم لإدراج وتحديث وحذف السجلات.
2)تحديث int العام (استعلام سلسلة، كائن... args)يُستخدم لإدراج السجلات وتحديثها وحذفها باستخدام PreparationStatement باستخدام الوسائط المحددة.
3)تنفيذ الفراغ العام (استعلام سلسلة)يستخدم لتنفيذ استعلام DDL.
4)تنفيذ T العام (سلسلة SQL، إجراء PreparedStatementCallback)ينفذ الاستعلام باستخدام رد الاتصال PreparationStatement.
5)استعلام T عام (سلسلة SQL، ResultSetExtractor rse)يستخدم لجلب السجلات باستخدام ResultSetExtractor.
6)استعلام القائمة العامة (سلسلة SQL، RowMapper RSE)يستخدم لجلب السجلات باستخدام RowMapper.

مثال على Spring JdbcTemplate

نحن نفترض أنك قمت بإنشاء الجدول التالي داخل قاعدة بيانات Oracle10g.

 create table employee( id number(10), name varchar2(100), salary number(10) ); 
الموظف.جافا

تحتوي هذه الفئة على 3 خصائص مع المُنشئين والواضعين والحاصلين.

 package com.javatpoint; public class Employee { private int id; private String name; private float salary; //no-arg and parameterized constructors //getters and setters } 
EmployDao.java

يحتوي على خاصية واحدة jdbcTemplate وثلاث طرق saveEmployee() وupdateEmployee وdeleteEmployee().

 package com.javatpoint; import org.springframework.jdbc.core.JdbcTemplate; public class EmployeeDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public int saveEmployee(Employee e){ String query='insert into employee values( ''+e.getId()+'',''+e.getName()+'',''+e.getSalary()+'')'; return jdbcTemplate.update(query); } public int updateEmployee(Employee e){ String query='update employee set name=''+e.getName()+'',salary=''+e.getSalary()+'' where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } public int deleteEmployee(Employee e){ String query='delete from employee where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } } 
applicationContext.xml

ال DriverManagerDataSource يتم استخدامه لاحتواء معلومات حول قاعدة البيانات مثل اسم فئة برنامج التشغيل وعنوان URL للاتصال واسم المستخدم وكلمة المرور.

هناك خاصية اسمها مصدر البيانات في فئة JdbcTemplate من نوع DriverManagerDataSource. لذلك، نحن بحاجة إلى توفير مرجع كائن DriverManagerDataSource في فئة JdbcTemplate لخاصية مصدر البيانات.

هنا، نحن نستخدم كائن JdbcTemplate في فئة EmployDao، لذلك نقوم بتمريره من خلال طريقة الضبط ولكن يمكنك استخدام المُنشئ أيضًا.

 
اختبار.java

تحصل هذه الفئة على الوحدة من الملف applicationContext.xml وتستدعي الأسلوب saveEmployee(). يمكنك أيضًا استدعاء أسلوب updateEmployee() وdeleteEmployee() عن طريق إلغاء التعليق على الكود أيضًا.

 package com.javatpoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext('applicationContext.xml'); EmployeeDao dao=(EmployeeDao)ctx.getBean('edao'); int status=dao.saveEmployee(new Employee(102,'Amit',35000)); System.out.println(status); /*int status=dao.updateEmployee(new Employee(102,'Sonoo',15000)); System.out.println(status); */ /*Employee e=new Employee(); e.setId(102); int status=dao.deleteEmployee(e); System.out.println(status);*/ } } 
قم بتنزيل هذا المثال (تم تطويره باستخدام MyEclipse IDE)
قم بتنزيل هذا المثال (تم تطويره باستخدام Eclipse IDE)