هذا البرنامج التعليمي أكثر عملية. يضيف المبرمجون مباشرة رمز النسخ إلى مشاريعهم الخاصة ويمكنهم استخدامه ببساطة عن طريق تعديله وتعديله. ومع ذلك ، لم يتم تقديم Springboot و Mybatis هنا. إذا أراد أي قراء أن يعرفوا ، فيمكنهم ترك رسالة لي والاستمرار في الانتباه. سأقوم بتحديثه ببطء في المستقبل. (قسم رمز المنطقة السوداء ، يمكن أن ينقلب هاتف Android يدويًا على اليسار لعرض جميع الرموز)
في الواقع ، التكامل بسيط للغاية. إذا كنت تستخدم Gradle ، فأضفه في ملف Build.gradle.
ترجمة ('org.mybatis.spring.boot: mybatis-spring-boot-starter: 1.3.1')إذا كنت تستخدم Maven ، أضفه في ملف pom.xml
تكوين مكتبة واحدة:
بعد المقدمة ، بشكل افتراضي ، سيقوم SPRING BOOT تلقائيًا بتكوين مصدر بيانات لنا ، والذي سيبحث عن classpath عن حزم JAR من H2 و HSQLDB وغيرها في قواعد بيانات الذاكرة. إذا تم العثور عليها ، فسيقوم تلقائيًا بتكوين مصدر بيانات لقاعدة بيانات الذاكرة.
إذا تم تحديد معلمات التكوين ذات الصلة لـ spring.datasource.* في application.yml أو application.property ، سيستخدم SPRING BOOT هذا التكوين لإنشاء مصدر بيانات.
بعد ذلك ، سيتم إنشاء SQLSessionFactoryBean و SQLSessionTemplate باستخدام DataSource تلقائيًا. سيتم مسح التعيينات الخاصة بك تلقائيًا ، متصلين بـ SQLSessionTemplate ، وتسجيلها في سياق الربيع.
spring.datasource.url = jdbc: mysql: // localhost/test spring.datasource.username = dbuser spring.datasource.password = dbpass spring.datasource.driver-class-name = com.mysql.jdbc.driver
لمزيد من المعلمات ، يرجى الاطلاع على DataSourceProperties
التكوين متعدد المكتبات:
بسبب احتياجات العمل ، يحتاج المشروع إلى استخدام قواعد بيانات متعددة لتطوير الأعمال في نفس الوقت:
أولاً ، يجب علينا تخصيص تكوين مصدرين للبيانات في التطبيق. من أجل السماح للآخرين برؤية المكتبة المتصلة بنظرة ، يمكنك استخدام تسمية قاعدة البيانات. على سبيل المثال ، مكتبة المستخدم ، ويمكنك استخدام user.datasource.*. عند استخدام مصادر بيانات متعددة ، لا يمكن حذف جميع التكوينات اللازمة.
first.datasource.url = jdbc: mysql: //localhost/firstfirst.datasource.username=dbuser1first.datasource.password=dbpass1fi rst.datasource.driver-class-name = com.mysql.jdbc.driverfirst.datasource.type = com.alibaba.druid.pool.druiddatasource // i أستخدم Druid ، أيضًا لا يمكنك إضافة الافتراضي second.datasource.url = jdbc: mysql: //localhost/secondsecond.datasource.username=dbuser2second.datasource.password=dbpa ss2second.datasource.driver-class-name = com.mysql.jdbc.driverse.datasource.type = com.alibaba.druid.pool.druiddatasource
أقوم بتحميل الكود مباشرة ، فإن النهج الخاص بي هو إنشاء مصدرين للبيانات مع فئتين للتكوين:
@configuration @mapperscan (basePackages = {"com.user.server.dao"} ، sqlsessionTemplateref = "userqlsessionTemplate") يجب أن يتم الإبلاغ عن الفئة العامة usermybatisconfig لا تحتاج الفئة التالية إلى إضافة configurationProperties (premix = "first.datasource") // يجب أن تكون قيمة البادئة هي بادئة الخاصية المقابلة في application.properteis public dataSource userDataSource () {return datasourceBuilder.create (). build () ؛ } bean public sqlsessionfactory userqlsessionfactory (QAlifier ("userDataSource") DataSource DataSource) يلقي استثناء {sqlsessionfactorybean bean = sqlsessionfactorybean () ؛ Bean.setDataSource (DataSource) ؛ // إضافة دليل XML ResourtenSolver Resolver = New PathMatchingResourcePatternresolver () ؛ جرب {bean.setMapperLocations (resolver.getResources ("classpath*: com/user/server/dao/mapping/*. xml")) ؛ return Bean.getObject () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ رمي new RunTimeException (e) ؛ }} @bean public sqlsessionTemplate userqlsessionTemplate (QAlifier ("usersQlSessionFactory") sqlsessionfactory sqlsessionfactory) يلقي استثناء {sqlsessionTemplate template = new sqlsessiontemplate // استخدم المصنع الذي تم تكوينه أعلاه لإرجاع القالب ؛ }} @configuration @mapperscan (basePackages = {"com.airmi.server.dao"} ، sqlsessionTemplateref = "AutotStsqlSessionTemplate") public class atostmybatisconfig autotestdatasource () {return datasourceBuilder.create (). build () ؛ } bean public sqlsessionTemplate AutotSqlSessionTemplate (QAlifier ("AutotSqlSessionFactory") sqlsessionfactory sqlsessionfactory) يلقي استثناء {sqlsessionTemplate applate = sqlsessiontemplate (sqlsessorefactory) ؛ قالب العودة. } bean public sqlsessionfactory autotsqlsessionfactory (Qalifier ("AutotStDatasource") dataSource DataSource) يرمي استثناء {sqlsessionfactorybean bean = new SqlSessionFactoryBean () ؛ Bean.setDataSource (DataSource) ؛ // إضافة دليل XML ResourtenSolver Resolver = New PathMatchingResourcePatternresolver () ؛ جرب {bean.setMapperLocations (resolver.getResources ("classpath*: com/airmi/server/dao/mapping/*. xml")) ؛ return Bean.getObject () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ رمي new RunTimeException (e) ؛ }}}@promary // يعني هذا التعليق التوضيحي أنه عندما يكون هناك فئات تنفيذ متعددة للحقن في نفس الواجهة ، فليس من الضروري السماح بتعليقات التوضيح التلقائي للإبلاغ عن خطأ. يتطلب الموقع الرسمي أنه عندما يتم تحديد مصادر بيانات متعددة ، يجب تحديد مصدر بيانات واحد ، ولا يلزم إضافتها إلى مصدر بيانات آخر.
عادةً ما يتم حقن حقن QUALIFIER بالاسم في مثيل واحد مع أنواع متعددة (على سبيل المثال ، هناك مثيلات متعددة من نوع مصدر البيانات).
mapperscan (basePackages = {"com.user.server.dao"} ، sqlsessionTemplateref = "userqlsessionTemplate") BasePackages هي الحزمة التي يوجد بها Mapper ، والمثال الذي يتم الرجوع إليه SQLSessionTemplaterf.هيكل رمز المستخدم كما يلي:
لخص
ما سبق هو طريقة تنفيذ التمهيد الربيعي لدمج MyBatis باستخدام مصادر بيانات متعددة قدمها المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!