كيفية استخدام Spring إلى CURD قاعدة البيانات؟

المؤلف | ون ، رئيس التحرير | قوه روي

تنزيل CSDN من Vision China

إنتاج | CSDN (المعرّف: CSDNnews)

كمبرمج ، CURD (إضافة أو حذف أو تعديل) هو شيء أساسي ، بغض النظر عما إذا كنت مبرمجًا صغيراً أو مبرمجًا كبيرًا سيتعامل مع قاعدة البيانات. فكيف تعمل قاعدة البيانات من خلال إطار الربيع في جافا؟ ستأخذك هذه المقالة للدراسة معًا.

يوفر إطار عمل الربيع فئة JdbcTemplate لقاعدة البيانات. JdbcTemplate هو أساس طبقة تجريد بيانات الربيع. وتم بناء فئات تجريدية أخرى عالية المستوى عليها. JdbcTemplate هي الفئة الأساسية لـ Spring JDBC. يرث JdbcTemplate من الفئة المجردة JdbcAccessor ، وينفذ أيضًا واجهة JdbcOperations. يتم تعريف JdbcTemplate في فئة JdbcTemplate بحيث يمكنك استخدام الإضافة والحذف والتعديل للعمل على قاعدة البيانات. الفئة الرئيسية المباشرة لـ JdbcTemplate هي JdbcAccessor ، والتي توفر بعض الخصائص العامة التي يتم استخدامها عند الوصول إلى قاعدة البيانات ، بما في ذلك DataSource و SQLExceptionTranslator. يتم استخدام الأول للحصول على اتصالات قاعدة البيانات وإدخال النفقات مثل تجمعات العازلة لاتصالات قاعدة البيانات والمعاملات الموزعة. والأخير هو ترجمة SQLException.

أولاً ، دعني أتحدث عن الأدوات المطلوبة لهذا المستند ، على النحو التالي:

  • نسخة مجتمع الفكرة

  • مخضرم ، تأتي الفكرة مع

  • الخلية أو المريض

بعد ذلك ، لنقدم بإيجاز وحدة Spring JDBC ، والتي تتضمن بشكل أساسي أربع حزم: الأساسية ومصدر البيانات والكائن والدعم. الوظائف المقدمة هي كما يلي:

  • يشمل المركز الوظائف الأساسية لـ JDBC ، مثل JdbcTemplate و simpleJdbcInsert و simpleJdbcCall و NamedParameterJdbcTemplate

  • يتضمن dataSource فئات المنفعة للوصول إلى قاعدة البيانات.

  • يصل الكائن إلى قاعدة البيانات في وضع OOP ، ويسمح بتنفيذ عمليات الاستعلام وإرجاع النتائج ككائنات عمل ، يمكنك مباشرة تعيين علاقة الاستعلام في جدول البيانات وسمات كائن العمل.

  • يشمل الدعم فئات الدعم للحزم الأساسية وحزم الكائن ، مثل توفير بعض فئات SQLException.

لقد فهمنا وظائف هذه الوحدات ، وبعد ذلك سنرى كيفية تكوين JDBC.

< ؟ xml version = "1.0" encoding = "UTF-8"؟ > < الفاصوليا xmlns = " xmlns: xsi = " xsi: schemaLocation = " " > < -1 تكوين مصدر البيانات- > < معرف الفول = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource" > < ! - برنامج تشغيل قاعدة البيانات- > < اسم الخاصية = "driverClassName" value = "com.mysql.jdbc.Driver" / > < ! -Ur1 متصل بقاعدة البيانات- > < اسم الخاصية = "url" value = "jdbc: mysql: // localhost: 3306 / spring_db" / > < ! -اسم المستخدم للاتصال بقاعدة البيانات- > < اسم الخاصية = "اسم المستخدم" القيمة = "الجذر" / > < كلمة المرور للاتصال بقاعدة البيانات! > < اسم الخاصية = "password" value = "root" / > < / فاصوليا > < -2 تكوين قالب JDBC- > < معرف الفول = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate" > < ! -يجب استخدام مصدر البيانات بشكل افتراضي- > < اسم الخاصية = "dataSource" ref = "dataSource" / > < / فاصوليا > < / فاصوليا >

يتم تعريف نوعين من الحبوب في الفول في ملف xml أعلاه ، وهما dataSource و jdbcTemplate.

يتم توفير فئة dataSource بواسطة org.springframework.jdbc.datasource.DriverManagerDataSource ، والتي تحتوي على 4 خصائص تتوافق مع:

  • driverClassName ، وهو محرك قاعدة البيانات ، القيمة com.mysql.jdbc.Driver؛

  • عنوان الوصول لقاعدة بيانات url ، كما هو موضح أعلاه ، localhost في jdbc: mysql: // localhost: 3306 / spring_db هو عنوان قاعدة بياناتك 3306 هو الاتصال بقاعدة البيانات غير متصل ، يشير spring_db خلف الخط المائل إلى اسم قاعدة البيانات المراد توصيلها

  • username اسم المستخدم لقاعدة البيانات ؛

  • كلمة المرور كلمة مرور قاعدة البيانات ؛

نوضح أدناه كيفية تشغيل قاعدة البيانات من خلال JDBC عن طريق الأمثلة ، نحتاج إلى إجراء الاستعدادات التالية.

أولاً ، نحتاج إلى تكوين pom.xml الخاص بـ maven لتنزيل حزم jar المطلوبة ، بما في ذلك spring-jdbc و mysql-connector-java:

  < الاعتماد > < معرف مجموعة > org.springframework < / معرف مجموعة > < قطعة أثرية > الربيع jdbc < / artifactId > < الإصدار > 4.3.6 الإفراج < / الإصدار > < / الاعتماد > < ! - https: //mvnrepository.com/artifact/mysql/mysql-connector-java- > < الاعتماد > < معرف مجموعة > الخلية < / معرف مجموعة > < قطعة أثرية > الخلية موصل-جافا < / artifactId > < الإصدار > 8.0.19 < / الإصدار > < / الاعتماد >

الخطوة الثانية ، يجب أن يكون لديك قاعدة بيانات يمكن الاستعلام عنها ، مثل تعيين كلمة المرور لقاعدة البيانات الخاصة بي إلى الجذر

mysqladmin -u root root root

الخطوة الثالثة: إنشاء جدول spring_db ، والحاجة إلى تفويض المستخدمين للوصول عن بُعد ، إذا كان محليًا ، فيمكن تنفيذ هذه الخطوة

MariaDB >  إنشاء قاعدة بيانات spring_db ؛ الاستعلام جيد ، تأثر صف واحد (0.000 ثانية)

الخطوة الرابعة هي إنشاء حزمة com.ssm.jdbc جديدة في مشروع الفكرة وإنشاء فئة اختبار JdbcTempTest في الحزمة. أولاً ، نقوم بتحميل تكوين xml ، ملف التكوين هو ملف تكوين xml أعلاه ، نقوم بإنشاء جدول بيانات بالنسبة إلى user_table ، استخدم طريقة jdbctemp.execute (سلاسل) لتنفيذ جملة SQL.

 @اختبار TestJdbcTemplate {0} فارغ عام // تحميل التكوين ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("jdbc.xml")؛ // احصل على مثيل JdbcTemplate JdbcTemplate jdbctemp = (JdbcTemplate) applicationContext.getBean ("jdbcTemplate") ؛ jdbctemp.execute ("إنشاء جدول user_table (" + "id في المفتاح الأساسي auto_increment،" + "اسم المستخدم varchar (80)" + "varchar password (40))") ؛ }}

ننفذ فئة الاختبار ، ثم ندخل قاعدة البيانات ، يمكننا أن نرى أنه تم إنشاء الجدول:

MariaDB >  استخدام spring_db ؛ قراءة معلومات الجدول لإكمال أسماء الجداول والأعمدة يمكنك إيقاف تشغيل هذه الميزة للحصول على بدء تشغيل أسرع مع -A تم تغيير قاعدة البيانات MariaDB >  إظهار الجداول + --------------------- + | جداول | في_سبرينج_دب | + --------------------- + | user_table | + --------------------- + صف واحد في المجموعة (0.000 ثانية) MariaDB >

بعد ذلك ، نستخدم jdbc لإضافة العمليات وحذفها وتعديلها. أولاً ، نحتاج إلى إنشاء فئة باسم المستخدم. تحتوي فئة المستخدم هذه على معرف المستخدم واسم المستخدم ومعلومات كلمة المرور ، وتعيين مجموعتها والحصول على السمات:

حزمة com.ssm.jdbc ؛ مستخدم الطبقة العامة { معرف عدد صحيح خاص ؛ اسم مستخدم السلسلة الخاصة ؛ كلمة مرور السلسلة الخاصة ؛ getId {عدد صحيح العام معرف العودة }} setId الفراغ العام (رقم صحيح) { this.id = id ؛ }} السلسلة العامة getUsername { إعادة اسم المستخدم ؛ }} public void setUsername (String username) { this.username = username ؛ }} السلسلة العامة getPassword { إعادة كلمة المرور }} مجموعة الفراغ العامة (كلمة مرور السلسلة) { this.password = كلمة المرور ؛ }} السلسلة العامة toString { إرجاع "المستخدم" ؛ }} }}

ثم نقوم بإنشاء واجهة UserDao ، والتي تحدد طرق إضافة وتحديث وحذف والاستعلام عن طريق المعرّف والاستعلام عن جميع المستخدمين:

حزمة com.ssm.jdbc ؛ استيراد java.util.List ؛ الواجهة العامة UserDao { public int addUser (مستخدم مستخدم) ؛ public int updateUser (مستخدم مستخدم) ؛ public int deleteUser (int id) ؛ // الاستعلام عن المستخدم بالمعرف findUserById (int id) العام للمستخدم ؛ // الاستعلام عن جميع المستخدمين قائمة عامة < المستعمل >  findAllUser ؛ }}

بعد ذلك ، لننفذ واجهة UserDao. في هذه الطريقة ، نعين منطق التحقق من الإضافة والحذف والتعديل المحدد ، ونلقي نظرة مباشرة على الرمز:

حزمة com.ssm.jdbc ؛ استيراد org.springframework.jdbc.core.BeanPropertyRowMapper ؛ استيراد org.springframework.jdbc.core.JdbcTemplate ؛ استيراد org.springframework.jdbc.core.RowMapper ؛ استيراد java.util.List ؛ الطبقة العامة UserDaoImpl تنفذ UserDao { JdbcTemplate الخاص jdbcTemplate ؛ public void setJdbcTemplate (JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate ، }} @تجاوز public int addUser (مستخدم مستخدم) { String sql = "insert in user_table (username، password) value (؟،؟)"؛ كائن الكائن = كائن جديد { user.getUsername ، user.getPassword } ؛ int num = this.jdbcTemplate.update (sql، obj) ؛ رقم العودة ؛ }} @تجاوز public int updateUser (مستخدم مستخدم) { String sql = "update user_table set username =؟، password =؟ Where id =؟"؛ معلمات الكائن = كائن جديد { user.getUsername ، user.getPassword ، user.getId } ؛ int num = this.jdbcTemplate.update (sql، params) ؛ رقم العودة ؛ }} @تجاوز public int deleteUser (int id) {int العامة الحذف المستخدم (int id) { String sql = "delete from user_table where id =؟"؛ int num = this.jdbcTemplate.update (sql، id) ؛ رقم العودة ؛ }} @تجاوز findUserById (int id) العام للمستخدم { String sql = "select * from user_table where id =؟"؛ تطبيق RowMapper < المستعمل >  rowMapper = BeanPropertyRowMapper الجديد < المستعمل > (User.class) ؛ return this.jdbcTemplate.queryForObject (sql ، rowMapper ، id) ؛ }} @تجاوز قائمة عامة < المستعمل >  findAllUser { سلسلة sql = "select * from user_table"؛ تطبيق RowMapper < المستعمل >  rowMapper = BeanPropertyRowMapper الجديد < المستعمل > (User.class) ؛ return this.jdbcTemplate.query (sql ، rowMapper) ؛ }} }}

ثم نضيف الفول في jdbc.xml ونضيف UserDao:

  < ! -تعريف الفول مع معرف المستخدم > < معرف الفول = "userDao" class = "com.ssm.jdbc.UserDaoImpl" > < ! -حقن jdbcTemplate في مثيل userDao- > < اسم الخاصية = "jdbcTemplate" ref = "jdbcTemplate" / > < / فاصوليا >

حسنًا ، كل شيء جاهز ، ثم نأتي إلى فئة الاختبار لاختبار الإضافات المحددة والحذف والتغييرات.

أولاً ، اختبر طريقة إضافة المستخدمين ، كما هو موضح أدناه:

 @اختبار addUserTest العامة باطلة { // تحميل ملف تكوين jdbc.xml ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("jdbc.xml")؛ // احصل على مثيل UserDao UserDao userDao = (UserDao) applicationContext.getBean ("userDao") ؛ // إنشاء مثيل للمستخدم User user = مستخدم جديد ؛ // تعيين الخصائص user.setUsername ("Zhang San") ؛ user.setPassword ("123") ؛ // إضافة مستخدم int num = userDao.addUser (مستخدم) ؛ إذا (رقم >  0) { System.out.println ("Success insert" + num + "data") ؛ } آخر { System.out.println ("erro") ؛ }} }}

تحديث المستخدم:

 @اختبار تحديث الفراغ العامUserTest { // تحميل ملف تكوين jdbc.xml ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("jdbc.xml")؛ // احصل على مثيل UserDao UserDao userDao = (UserDao) applicationContext.getBean ("userDao") ؛ // إنشاء مثيل للمستخدم User user = مستخدم جديد ؛ // تعيين الخصائص user.setId (1) ؛ user.setUsername ("") ؛ user.setPassword ("12345") ؛ // تحديث معلومات المستخدم int num = userDao.updateUser (مستخدم) ؛ إذا (رقم >  0) { System.out.println ("تحديث النجاح" + num + "data") ؛ } آخر { System.out.println ("erro") ؛ }} }}

حذف المستخدمين:

 @اختبار delUserTest العامة باطلة { // تحميل ملف تكوين jdbc.xml ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("jdbc.xml")؛ // احصل على مثيل UserDao UserDao userDao = (UserDao) applicationContext.getBean ("userDao") ؛ // حذف ، قم بتمرير قيمة المعرف int num = userDao.deleteUser (1) ؛ إذا (رقم >  0) { System.out.println ("نجاح الحذف" + num + "data") ؛ } آخر { System.out.println ("erro") ؛ }} }}

الاستعلام عن معلومات المستخدم ، بما في ذلك الاستعلام حسب المعرف والاستعلام عن الكل:

@اختبار findUserTest الفراغ العام { // تحميل ملف تكوين jdbc.xml ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("jdbc.xml")؛ // احصل على مثيل UserDao UserDao userDao = (UserDao) applicationContext.getBean ("userDao") ؛ // مستخدم الاستعلام بناء على معرف User user = userDao.findUserById (2) ؛ System.out.println (مستخدم) ؛ }} @اختبار findAllUserTest الفراغ العام { // تحميل ملف تكوين jdbc.xml ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("jdbc.xml")؛ // احصل على مثيل UserDao UserDao userDao = (UserDao) applicationContext.getBean ("userDao") ؛ // مستخدم الاستعلام بناء على معرف قائمة < المستعمل >  list = userDao.findAllUser ، عن (مستخدم: قائمة) { System.out.println (مستخدم) ؛ }} }}

حسنًا ، ما سبق هو حول كيفية استخدام Spring JDBC لتشغيل قاعدة البيانات لتطبيق الإضافة والحذف والتعديل.

battle المعركة الصعبة في عالم الذكاء الاصطناعي ، لماذا يعتبر Tengine الإطار السائد الأكثر شيوعًا للمطورين؟

بعد أن قلت الكثير من شبكات الجيل الخامس ، أصبحت التكنولوجيا الأكثر أهمية هنا

60360 كبير علماء المالية الجدد: لا تتوقع أن يكون AI Lab مركزًا

صور AI بإصلاح الصور القديمة بذكاء ، التأثير مذهل بالنسبة لي

training سلسلة تدريب القوة الداخلية للمبرمج: 10 صور على الذاكرة الفعلية Linux والذاكرة الافتراضية

meetsعندما يلتقي DeFi مع Rollup ، ما هو نوع الشرارة التي سيحدثها؟

الجيل الجديد منهم ، يواصل كتابة أسطورة "القراصنة"

المعركة بين AMD و Intel: أي وحدة المعالجة المركزية هي الأفضل؟

القراءة الصباحية | 104 أيام قبل 1 مايو

كل واحد من حملة "فريق Zhong Nanshan" ، يجب أن يتهم Zhong Nanshan رسميًا هذه الجملة

المنبع Yeyu workers الأطباء العاملين في مجال مكافحة الوباء من الأطباء - Huang Jie

قراءة الصباح | ووهان 19000 اختبارات الجيل الثالث عالية الحمض النووي سلبية | شنيانغ يتطلب اختبار الحمض النووي للسكان الرئيسيين

دليل السفر إلى Zhangjiajie Maoyanhe Scenic Star Camp والمعالم السياحية المحيطة هنا

تتساءل شمس هالو في كيم فوشان ، تشونغتشينغ.

أعلن مكانان تعليق الوعاء الساخن والشواء ووجبات تناول الطعام الأخرى | أصدرت لجنة الصحة الوطنية تحذيراً هاماً

انظر Chongqing وانظر الحكمة | Kaicheng العلوم والتكنولوجيا مفهوم حماية البيئة تعزيز تقنية تحويل المؤسسات تسارع تطوير الشركة

"الآن فقط ، تم تعديل مستوى خطر الوباء في موقعك!"

في يوم العمل الثالث بعد العطلة ، جاءت أخبار "النواة الصلبة"