لم أقم بمشروع مؤخرًا ، لذلك قمت بإعادة تنظيم ملف التكوين الأكثر اكتمالا لمولد MyBatis الأكثر اكتمالا (MBG لفترة قصيرة) ، مع تفسيرات مفصلة ، ولم يعد علي أن أنظر إلى دليل المستخدمين في EN ؛
<؟ المولد-> <generatorConfiguration> <!-يمكن استخدامه لتحميل عناصر التكوين أو ملفات التكوين. في ملف التكوين بأكمله ، يمكنك استخدام $ {propertyKey} للإشارة إلى مورد عنصر التكوين: تكوين عنوان تحميل الموارد ، واستخدام المورد ، ويبدأ MBG من classpath ، مثل com/myProject/generatorConfig.properties url: تكوين الجيولوجيا تحميل الموارد ، استخدم عنوان URL ، مثل الملف: لاحظ أنه يمكن اختيار واحد فقط من الخصائص ؛ بالإضافة إلى ذلك ، إذا تم استخدام mybatis-generator-maven-plugin ، فيمكن استخدام الخصائص المحددة في pom.xml مباشرة في generatorconfig.xml <properties resource = "" url = "" "/>-> <!-عندما يعمل MBG ، فإن سمة الموقع لحزمة التبعية التي تحتاج إلى التحميل تشير إلى الموقع الكامل < الملفات/ibm/sqllib/java/db2java.zip "/>-> <!-السياق: معرف البيئة لإنشاء مجموعة من الكائنات: مطلوب ، معرف السياق ، يستخدم للمطالبة عند إنشاء خطأ defaultModelType: تحديد نمط الكائن المولد 1 ، مشروط: مشابه للهرش. 2 ، شقة: يتم إنشاء جميع المحتوى (المفتاح الأساسي ، blob) ، وما إلى ذلك في كائن واحد ؛ 3 ، التسلسل الهرمي: يقوم المفتاح الأساسي بإنشاء كائن XXKEY (فئة المفاتيح) ، النقطة ، إلخ. ينشئ كائنًا بشكل منفصل ، والسمات البسيطة الأخرى في كائن واحد (فئة السجل) TargetRuntime: 1 ، MyBatis3: القيمة الافتراضية ، تقوم بإنشاء محتوى بناءً على mybatis3 2 ، mybatis3simple: على غرار mybatis3 ، ولكن لا يولد xxxbysample ؛ introducedColumnImpl: الاسم المؤهل بالكامل للفئة ، المستخدم لتمديد MBG-> <context id = "mySQL" defaultModelType = "Hierarchical" targetRuntime = "myBatis3Simple"> <! عمومًا ، احتفظ بالقيمة الافتراضية ، الكلمات الرئيسية لقاعدة بيانات اللقاء (الكلمات الرئيسية Java) ، استخدم ColumberRide لتجاوز-> <property name = "autodelimitkeywords" value = "false"/> <!-تشفير ملفات java التي تم إنشاؤها-> <property name = "javafileencoding" value = "utf-8"/> <! value = "org.mybatis.generator.api.dom.defaultjavaformatter"/> <!-تنسيق رمز XML-> <property name = "xmlformatter" value = "org.mybatis.generator.api.defaultxmlformatter"/> <!-بداية develimiter: endingdelimiter: تحديد marks. على سبيل المثال ، Oracle هو عروض أسعار مزدوجة ، و MySQL الافتراضيات إلى `backticks ؛ -> <property name = "startDelimiter" value = "` "/> <property name =" endDelimiter "value =" `"/> <!- userId = "root" password = "admin"> <!-هنا يمكنك تعيين خصائص الخصائص ، ويتم تعيين كل خاصية خاصية على برنامج التشغيل الذي تم تكوينه-> </jdbcconnection> <!-يتم استخدام معالج نوع Java لمعالجة أنواع DB إلى أنواع Java ، و javatyperesolverdefaultiMpl. لاحظ أنه بشكل افتراضي ، ستحاول استخدام عدد صحيح ، طويل ، قصير ، وما إلى ذلك لتتوافق مع أنواع البيانات العشرية والرقمية ؛ -> <javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverdefaultimpl"> <!-صواب: استخدم bigdecimal لأنواع البيانات العشرية والرقمية الخاطئة: الافتراضي> 0 ؛ طول> 18: استخدام bigdecimal ؛ المقياس = 0 ؛ الطول [5،9]: استخدام عدد صحيح ؛ المقياس = 0 ؛ الطول <5: استخدم قصيرة ؛ -> <property name = "forcebigdecimals" value = "false"/> </javatyperesolver> <!-منشئ طراز Java هو العناصر اللازمة المسؤولة: 1. الفئة الرئيسية (انظر Context DefaultModelType) ؛ 2. جافا فئة 3. الاستعلام فئة TargetPackage: الحزمة التي سيتم وضعها في الفئة التي تم إنشاؤها ، يتم التحكم في الحزمة الحقيقية من خلال سمة EnloberPackages ؛ TargetProject: المشروع المستهدف ، تحديد دليل موجود ، وسيتم وضع المحتوى الذي تم إنشاؤه في الدليل المحدد. إذا لم يكن الدليل موجودًا ، فلن يقوم MBG تلقائيًا بإنشاء دليل-> <JavamodElgenerator TargetPackage = "com._520it.mybatis.domain" TargetProject = "src/main/java"> <!-بالنسبة إلى mybatis3/mybatis3simple يخلق تصنيعًا تلقائيًا ، والتي يتم تنشيطها. بدلا من استخدام المستوطنين ؛ -> <property name = "constructorBased" value = "false"/> <!-استنادًا إلى targetpackage ، يتم إنشاء طبقة من الحزمة وفقًا لمخطط قاعدة البيانات. يتم وضع الفئة النهائية التي تم إنشاؤها ضمن هذه الحزمة ، والافتراضي خاطئ-> <property name = "enlabesUBPackages" value = "true"/> <!-لـ MyBatis3/MyBatis3Simple يخلق فئة غير قابلة للتنفيذ؟ إذا كان الأمر صحيحًا ، فسيقوم MBG بإنشاء فئة بدون طريقة Setter ، واستبدالها بفئة مماثلة لـ ConstructorBased-> <property name = "immutable" value = "false"/> <!-اضبط كائن جذر. إذا تم تعيين كائن الجذر هذا ، فسوف يرث KeyClass أو RecordClass الذي تم إنشاؤه هذا الفئة ؛ يمكن تجاوز هذا الخيار في خاصية RootClass للجدول ملاحظة: إذا كانت هناك نفس السمات مثل فئة الجذر في فئة المفتاح أو فئة السجلات ، فلن يقوم MBG بتجديد هذه السمات ، بما في ذلك: 1. اسم السمة هو نفسه ، نفس النوع ، وطريقة getter/setter نفسها ؛ -> <property name = "rootclass" value = "com._520it.mybatis.domain.basedomain"/> <!-تعيين ما إذا كان يجب استدعاء طريقة trim () على حقل نوع السلسلة في طريقة getter-> <property name = "trimstrings" value = "true"/> </javamodelgenerator> <! لاحظ أنه بعد myBatis3 ، يمكننا استخدام واجهة MapPer.xml + واجهة Mapper (أو لا نستخدم واجهة Mapper) ، أو استخدم فقط واجهة Mapper + التعليق التوضيحي. لذلك ، إذا احتاج تكوين javaclientgenerator إلى إنشاء XML ، فيجب تكوين هذا العنصر باستخدام TargetPackage/TargetProject: مثل javamodelgenerator-> <sqlmapgenerator targetpackage = "com._520it.mybatis.mapper" targerproject = "src/main/resources"> <! مخطط قاعدة البيانات. يتم وضع الفئة النهائية التي تم إنشاؤها ضمن هذه الحزمة ، والافتراضي الخاطئ-> <property name = "enlabesUBPackages" value = "true"/> </sqlmapgenerator> <!-بالنسبة إلى myBatis ، فإنه هو إنشاء واجهة خريطة. لاحظ أنه إذا لم يتم تكوين العنصر ، فلن يتم إنشاء واجهة Mapper بشكل افتراضي targetpackage/targetproject: مثل JavamodelGenerAtortype: اختر كيفية إنشاء واجهة mapper (تحت mybatis3/mybatis3simple): 1. لن يتم إنشاء XML المقابلة ؛ 2. MixedMapper: باستخدام تكوين هجين ، سيتم إنشاء واجهة Mapper وسيتم إضافة التعليق التوضيحي المناسب بشكل مناسب ، ولكن سيتم إنشاء XML في XML ؛ 3. XmlMapper: سيتم إنشاء واجهة Mapper ، وسوف تعتمد الواجهة تمامًا على XML ؛ لاحظ أنه إذا كان السياق هو mybatis3simple: فقط مشروح و xmlmapper-> <javaclientgenerator targetpackage = "com._520it.mybatis.mapper" type = "enoTatedMapper" target = "src/main/java"> <! يتم وضع الفئة النهائية التي تم إنشاؤها ضمن هذه الحزمة ، والتي تتخلف عن سدادها-> <property name = "EnlobesUbPackages" value = "true"/> <!-يمكنك إضافة واجهة أولياء إلى جميع الواجهات التي تم إنشاؤها ، ولكن MBG مسؤول فقط عن الجيل ولا يتمتع بالتحقق من ملفات <swerting = "rootinterface" = ""/>//javaclientator. يمكن أن يكون هناك واحد أو أكثر من الجداول. يجب أن يكون هناك جدول محدد بواسطة عنصر الجدول. سيتم إنشاء الملفات التالية: 1. ملف خريطة SQL 2. إنشاء فئة مفتاح أساسي ؛ 3. فصول مع حقول أخرى باستثناء blob والمفتاح الأساسي ؛ 4. فصول تحتوي على Blob ؛ 5. فئة مشروطة للمستخدمين لإنشاء استعلامات ديناميكية (SelectByexample ، deletebyexample) ، اختياري ؛ 6. واجهة Mapper (اختياري) اسم TableName (ضروري): اسم جدول الكائن المراد إنشاؤه ؛ ملاحظة: قضايا حساسة للحالة. في ظل الظروف العادية ، ستحدد MBG تلقائيًا حساسية حالة معرف قاعدة البيانات. بشكل عام ، ستقوم MBG بالاستعلام عن جدول البيانات استنادًا إلى مخطط SET أو الكتالوج أو اسم TableN ، واتبع العملية التالية: 1. إذا كانت هناك مسافات في المخطط أو الكتالوج أو اسم Tablename ، فسيتم استخدام مجموعة التنسيق بدقة للاستعلام ؛ 2. خلاف ذلك ، إذا تم رسملة معرف قاعدة البيانات ، فسيقوم MBG تلقائيًا بتحويل اسم الجدول إلى رأس المال ثم البحث ؛ 3. خلاف ذلك ، إذا تم رسملة معرف قاعدة البيانات ، فسيقوم MBG تلقائيًا بتحويل اسم الجدول إلى رأس المال ثم البحث ؛ يبحث؛ 4. خلاف ذلك ، استخدم تنسيق الحالة المحدد للاستعلام ؛ بالإضافة إلى ذلك ، إذا تم استخدام كائن قاعدة البيانات عند إنشاء جدول ، فسيتم إنشاء اسم الجدول باستخدام الحالة المحددة حتى إذا تم استخدام معرف قاعدة البيانات ، في هذه الحالة ، يرجى تعيين SELIMITIDENTIFIERS = "صحيح" للاحتفاظ بتنسيق الحالة ؛ اختياريا: 1. المخطط: مخطط قاعدة البيانات ؛ 2. الكتالوج: كتالوج قاعدة البيانات ؛ 3. الاسم المستعار: تم تعيين الاسم المستعار لجدول البيانات. إذا تم تعيين الاسم المستعار ، فعندئذ جميع التحديدات التي تم إنشاؤها في عبارات SQL ، سيصبح اسم العمود: alias_actualColumnName4 ، DomainObjectName: اسم فئة المجال التي تم إنشاؤها. إذا لم يتم تعيينه ، استخدم اسم الجدول كاسم لفئة المجال ؛ يمكن ضبطه على somepck.domainname ، ثم سيتم وضع فئة DomainName تلقائيًا في حزمة SomePCK ؛ 5 ، EnableInsert (صواب افتراضي): حدد ما إذا كنت تريد إنشاء عبارة إدراج ؛ 6 ، EnloberEctByPrimaryKey (صواب افتراضي): حدد ما إذا كان سيتم إنشاء بيان للاستعلام عن الكائن وفقًا للمفتاح الأساسي (أي getByid أو GET) ؛ 7. EnlobyEctByExample (صواب افتراضي): MyBatis3Simple خاطئة ، يحدد ما إذا كان سيتم إنشاء بيانات استعلام ديناميكية ؛ 8. 9. EnupplyEteLeteByPrimaryKey (صواب افتراضي): تحديد ما إذا كان سيتم إنشاء عبارة تحذف الكائن وفقًا للمفتاح الأساسي (أي الحذف) ؛ 10. Enabledel etebyexample (صواب افتراضي): MyBatis3Simple خاطئة ، حدد ما إذا كنت تريد إنشاء عبارات حذف ديناميكية ؛ 11 ، EnableCountByexample (صواب افتراضي): MyBatis3Simple خاطئة ، حدد ما إذا كان سيتم إنشاء إجمالي عدد الكلمات الديناميكية (المستخدمة في العدد الإجمالي للكلمات لترقيم الصفحات) ؛ 12 ، enableupDateByExample (صواب افتراضي): MyBatis3Simple خاطئة ، حدد ما إذا كنت تريد إنشاء عبارات تعديل ديناميكية (تعديل السمات فقط غير فارغة في الكائن) ؛ 13 ، ModelTyp E: ارجع إلى DefaultModelType لعنصر السياق ، وهو ما يعادل الكتابة فوق ؛ 14 ، sendidentifiers: ارجع إلى شرح اسم Tablename ، لاحظ أن تحديدات default Quase هي علامات اقتباس مزدوجة. إذا استخدمت قاعدة بيانات مثل MySQL `(Backquotes ، فأنت بحاجة أيضًا إلى تعيين خصائص STEMBILITER و ENDDELIMITER للسياق) 15 ، DELIMITALLColumns: تعيين ما إذا كانت جميع أسماء الأعمدة التي تم إنشاؤها في SQL ناتجة عن المعرفات. المروحات الإشارة تشير إلى خاصية السياق. لاحظ أن العديد من المعلمات في الجدول هي إعادة كتابة للخصائص الافتراضية لـ javamodelgenerator ، والسياق والعناصر الأخرى ؛ -> <Table Tablename = "userInfo"> <!-مرجع خاصية BustructorBased لـ javamodelgenerator-> <property name = "constructorBased" value = "false"/> <!-الافتراضي خاطئ. إذا تم ضبطه على TRUE ، فلن تتم إضافة اسم الجدول باستخدام الكتالوج أو المخطط في SQL المولدة ؛ -> <property name = "reghorequalifiersatruntime" value = "false"/> <!-مرجع javamodelgenerator الخاصية غير القابلة للتغيير للخاصية غير القابلة للتغيير-> <property name = "stimutable" value = "false"/> <!-يحدد ما إذا كان يجب إنشاء فئة المجال فقط. إذا تم ضبطه على TRUE ، يتم إنشاء فئة المجال فقط. إذا تم تكوين SQLMapGenerator أيضًا ، فعندئذ في ملف Mapper XML ، يتم إنشاء عنصر النتيجة فقط-> <property name = "modelonly" value = "false"/> <!-ارجع إلى خاصية RootClass الخاصة بـ javamodelgenerator <property name = "rootclass" value = ""/>-> <!-ارجع إلى خاصية face RootInterface الخاصة بـ javaclientgenerator <property name = "rootinterface" value = ""/>-> <!-إذا تم تعيين RunTimeCatalog ، ثم في SQL تم إنشاؤه ، يتم استخدام الكتالوج المحدد بدلاً من الكتالوج على عنصر الجدول. <property name = "runtimecatalog" value = "" "/>-> <!-إذا تم تعيين RunTimesChema ، ثم في SQL المولدة ، يتم استخدام المخطط المحدد بدلاً من المخطط على عنصر الجدول. <property name = "runtimeschema" value = ""/>-> <!-إذا تم تعيين RunTimetablename ، ثم في SQL تم إنشاؤه ، يتم استخدام اسم Tablenment المحدد بدلاً من عنصر الجدول. <property name = "runTimetablename" value = "" "/>-> <!-لاحظ أن هذه الخاصية مفيدة فقط لـ MyBatis3Simple ؛ إذا كان وقت التشغيل المحدد هو MyBatis3Simple ، فسيتم إنشاء طريقة Selecall. إذا تم تحديد SelectallOrderByClause ، فسيتم إضافة شرط الطلب المحدد إلى SQL ؛ -> <property name = "selectallorderbyclause" value = "Age desc ، اسم المستخدم ASC"/> <!-إذا تم تعيينه على صحيح ، فإن فئة النماذج المولدة ستستخدم بشكل مباشر اسم العمود نفسه ، ولن يستخدم أساليب تسمية الجمل ، مثل Born_date ، و properation المولدة. إنشاء طريقة لإنشاء مفتاح أساسي. إذا تم تعيين هذا العنصر ، فسيقوم MBG بإنشاء عنصر <seleckekey> الصحيح في عنصر <Sert> الذي تم إنشاؤه. يمكن تحديد العنصر العمود: اسم عمود المفتاح الأساسي ؛ SQLSTATEMENT: يحتوي عبارة SELECTEKE التي سيتم إنشاؤها على الخيارات التالية: CLOUDSCAPE: المكافئ SQL لـ SELECTEKEY هو: القيم IDENTION_VAL_LOCAL () () DB2: معادلة SQL لـ SELECTEKEY هي: DOUNTE IDENTIDE_VAL_LOCAL () () DB2_MF: The SQL EQUITIONENT to SelectKey: sysibm.sysdummy1derby: ما يعادل SQL لـ selectekeke هو: القيم الهوية_val_local () hsqldb: ما يعادل SQL ل seleckey هو: call call () Informix: ما يعادل sql antaiDekekey: seleckekekekeke IS: SELECT LAST_INSERT_ID () SQLSERVER: المكافئ SQL لـ SELECTEKEY هو: SELECT SECOPE_IDINCERITY () SYBASE: المكافئ SQL لـ SELECTEKEY هو: SELECTINGE IDENTIONJDBC: إنه مكافئ لإضافة usegeneratedKeys = "true" keyproperty element element element <edrateded <" sqlstatement = ""/>-> <!-سيقوم هذا العنصر بإعادة تسمية اسم العمود قبل حساب اسم سمة الكائن بناءً على اسم العمود في الجدول. إنه مناسب جدًا عندما يكون للأعمدة الموجودة في الجدول سلاسل بادئة شائعة ، مثل اسم العمود: Cust_id ، Cust_name ، Cust_email ، Cust_address ، إلخ. ؛ ثم يمكنك تعيين SearchString على "^cust_" واستبداله بمساحة فارغة. ثم اسم السمة في كائن العميل الذي تم إنشاؤه ليس CustId ، cu stname ، وما إلى ذلك ، ولكن يتم استبداله بالمعرف والاسم والبريد الإلكتروني ، ثم يصبح سمات: المعرف ، الاسم ، البريد الإلكتروني ؛ لاحظ أن MBG يستخدم java.util.regex.matcher.replaceall لاستبدال SearchString و applacestring. إذا تم استخدام عنصر FleoroverRide ، فإن هذه السمة غير صالحة ؛ <columnerenamingRule SearchString = "" replacestring = "" "/>-> <!-يستخدم لتعديل خصائص العمود في الجدول. سوف تستخدم MBG العمود المعدل لإنشاء خصائص المجال ؛ العمود: اسم العمود المراد إعادة تعيينه ؛ لاحظ أنه يمكن أن يكون هناك عناصر متعددة من عناصر RoodoverRide في عنصر الجدول ~-> <columnoverride column = "username"> <!-استخدم سمة الخاصية لتحديد اسم السمة لإنشاء العمود-> <property name = "property value =" username "/> <! <name property = "javatype" value = ""/>-> <!-jdbctype يستخدم لتحديد نوع JDBC للعمود <property name = "jdbctype" value = "" "/>-> <!-typehandler يستخدم لتحديد النوع المستخدم في هذا العمود. إذا كنت ترغب في تحديد ، يرجى ملاحظة أنه في MyBatis ، لن يتم إنشاء typehandler في mybatis-config.xml في mybatis-config.xml ، فقط وصف المعلمة ما يلي: where id = #{id ، jdbctype = bigint ، typehandler = com._520it.mybatis.myty. value = ""/>-> <!-ارجع إلى تكوين DelimitAllColumns لعنصر الجدول ، الافتراضي هو خطأ <name property = "delimitedColumnName" value = ""/>-> </columnoverride> <!-ignoreColumn يعين عمود يتجاهله MGB. إذا تم تعيين إعادة العمود ، فعندئذ في المجال الذي تم إنشاؤه وتوليد SQL ، يحدد اسم العمود المراد تجاهله ؛ DelimitedColumnName: ارجع إلى تكوين DelimitAllColumns لعنصر الجدول ، الافتراضي خاطئ. لاحظ أنه يمكن أن يكون هناك عناصر متعددة الجهل في عنصر الجدول <COMMANTER COMMANTER = "Deptid" DelimitedColumnName = ""/>-> </table> </context> </generatorConfiguration>ما سبق هو التفسير التفصيلي لملف التكوين الأكثر مثالية لمولد MyBatis الذي قدمه لك المحرر (الإصدار الكامل). آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!