MyBatis هو orm شبه التلقائي. في استخدام هذا الإطار ، فإن معظم عبء العمل هو كتابة ملفات تعيين رسم الخرائط. نظرًا لأن الكتابة اليدوية سهلة ارتكاب أخطاء ، فيمكننا استخدام MyBatis-Generator لمساعدتنا تلقائيًا في إنشاء الملفات.
هندسة عكسية
1. ما هو الهندسة العكسية
يتطلب MyBaits من المبرمجين كتابة عبارات SQL بأنفسهم. يوفر MyBatis المسؤول الهندسة العكسية لإنشاء الكود المطلوب تلقائيًا لتنفيذ MyBatis (mapper.java ، mapper.xml ، po ..)
طرق الهندسة العكسية الشائعة المستخدمة في تطوير المؤسسة الفعلية:
يتم إنشاء رمز Java بسبب جدول قاعدة البيانات.
2. قم بتنزيل الهندسة العكسية
MyBatis-Generator-Core-1.3.2-Bundle.zip
3. كيفية استخدام (يمكن استخدامه)
3.1 تشغيل الهندسة العكسية
عدة طرق لتشغيل الهندسة العكسية المقدمة في الوثائق الرسمية
تشغيل مولد MyBatis
يمكن تشغيل MyBatis Generator (MBG) بالطرق التالية:
(1) من موجه الأوامر مع تكوين XML
(2) كمهمة ANT مع تكوين XML
(3) كمساعد مافن
(4) من برنامج Java آخر مع تكوين XML
(5) من برنامج جافا آخر مع تكوين قائم على Java
(6) يمكنك أيضًا إنشاء رمز من خلال المكون الإضافي Eclipse
يوصى باستخدام طريقة برنامج Java (من برنامج Java آخر مع تكوين XML) ولا تعتمد على أدوات التطوير.
فيما يلي مشروع يقوم بإنشاء ملفات عكسية ، ثم نسخ الملفات التي تم إنشاؤها تلقائيًا إلى المشروع الأصلي (يتم ذلك لإيقاف إنشاء الملف المباشر في الملف المصدر والكتابة فوق الملف بنفس الاسم). لقطة شاشة حزمة الجرة المستوردة وهيكل المشروع هي كما يلي:
كما هو موضح
3.2 إنشاء ملفات تكوين الرمز
GeneratorConfig.xml:
<؟ 1.0 // en "" http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd "> <enseratorConfiguration> <context id =" testtables "targetRuntime =" mybatis3 "> <someGenerator> <! value = "true"/> </commentGenerator> <!-معلومات اتصال قاعدة البيانات: فئة السائق ، عنوان الاتصال ، اسم المستخدم ، كلمة المرور-> <jdbcconnection driverClass = "com.mysql.jdbc.driver" connectionurl = "jdbc: mysql: // localhost: 3306/mybatis" userId = "root" password = "1234"> </jdbcconnection> <!- <jdbcconnection driverClass = "oracle.jdbc.oracledriver -> <!-خطأ افتراضي ، قم بتحليل أنواع JDBC العشرية والرقمية إلى عدد صحيح ، وعندما يكون صحيحًا ، قم بتحليل أنواع JDBC العشرية والرقمية إلى java.math.bigdecimal-> <javatyperesolver> <property name = "forcebigdecimals" value " / تم إنشاؤه-> <javamodelgenerator targetpackage = "cn.edu.hpu.ssm.po" TargetProject = "./ src"> <!-enlabesUBPackages: ما إذا كان يجب أن يكون المخطط هو احتمالية الحزمة-> <property name = "enblesubpackages" value = false " / value = "true"/> </javamodelgenerator> <!-TargetProject: الموقع الذي يتم فيه إنشاء ملف خريطة الخريطة-> <sqlmapgenerator targetpackage = "cn.edu.hpu.ssm.mapper" TargetProject = "./ name = "enblesubPackages" value = "false"/> </sqlmapgenerator> <!-TargetPackage: موقع توليد واجهة mapper-> <javaclientgenerator type = "xmlmapper" targetpackage = "cn.edu.hpu.ssm.mapper" targetpro = لاحقة الحزمة-> <property name = "enblesubPackages" value = "false"/> </javaclientgenerator> <!-حدد جدول قاعدة البيانات-> <جدول tablename = "عناصر"> </table> <جدول tablename = "orders"> </table> table tablename = "orderdetail" tablename = "sys_user"> </table> <table schema = "" tablename = "sys_role"> </table> <table schema = "" tablename = "sys_permision -> <!-تتطلب بعض حقول الجدول نوع java <table schema = "" tablename = ""> <columnoverride column = "" javatype = ""/> </table>-> </context> </generatorConfiguration>
3.3 تنفيذ برنامج المولد
generatorsqlmap.java:
استيراد java.io.file ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد org.mybatis.generator.api.mybatisgenerator ؛ استيراد org.mybatis.generator.config.configuration ؛ import org.mybatis.generator. org.mybatis.generator.internal.defaultShellCallback ؛ generatorsqlmap {public void generator () يلقي استثناء {list <string> تحذيرات = ArrayList جديد <string> () configurationParser cp = configurationparser جديد (تحذيرات) ؛ التكوين التكوين = cp.parseconfiguration (configfile) ؛ defaultShellCallback callback = new DefaultShellCallback (الكتابة الزائدة) ؛ mybatisgenerator mybatisgenerator = newBatisGenerator (config ، warnings) ؛ static void main (string [] args) يرمي الاستثناء {try {generatorsqlmap generatorsqlmap = new generatorsqlmap () ؛ generatorsqlmap.generator () ؛رمز تم إنشاؤه:
3.4 باستخدام رمز تم إنشاؤه
تحتاج إلى نسخ الرمز الذي تم إنشاؤه في المشروع الذي تم إنشاؤه إلى مشروعك الخاص. دعنا نسخّل عناصر heatmapper.java و heatsmapper.xml ، والعناصر ، و itemsexample في مشروعنا الأصلي.
طرق الاختبار في العناصر
package cn.edu.hpu.ssm.test ؛ استيراد org.junit.assert.fail ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ استيراد org.junit.before ؛ import org.junit.test ؛ استيراد org.springframework.context.application ؛ org.springframework.context.support.classpathmlapplicationcontext ApplicationContext ؛ العناصر الخاصة عناصر mapper ؛ // التعليق التوضيحي قبل استدعاء هذه الطريقة قبل تنفيذ جميع طرق الاختبار لهذا الفئة beforepublic void setup () رمي الاستثناء {applicationContext = new classpathxmlapplicationcontext testpublic void testDeleteberprimaryKey () {fail ("لم يتم تنفيذها بعد") ؛} // إدراج testInsert () {عناصر العناصر = جديد العناصر () ؛ items.setName ("iPhone-5S") ؛ items.setPrice (39999f) ؛ items.setDetail ("aginitic") ؛ items.setpic ("sdasd.jpg") itemSexample = new itemSexample () ؛ // إنشاء شروط الاستعلام من خلال المعايير itemSexample.criteria معايير = itemSexample.CreateCriteria () ؛ المعايير. لـ (int i = 0 ؛ i <list.size () ؛ i ++) {items it = list.get (i) ؛ System.out.println (it.getId ()+":"+it.getName ()) ؛}} // Query استنادًا إلى المفتاح الأساسي testpublic void TestUpDateByPrimaryKey () {// تحديث جميع الحقول ، تحتاج إلى الاستعلام أولاً ثم تحديث العناصر = headsmapper.selectbyprimarykey (1) ؛ items.setName ("iPhone") ؛ heatmapper.updateByPrimaryKey (العناصر) ؛ // إذا لم يكن الحقل الوارد فارغًا ، فاستخدم هذه الطريقة في تحديثات الدُفعات. ليست هناك حاجة للاستعلام أولاً ثم تحديث //itemsmapper.updateByPrimaryKeySelective(record) ؛}}ما ورد أعلاه هو رمز MyBatis العكسي الهندسي الأوتوماتيكي الذي تم إنشاؤه بواسطة MyBatis Framework الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا للجميع!
القراءات الموصى بها من wulin.com:
MyBatis مقدمة تعليمي تعليمي (ط) - بداية MyBatis السريعة
تحليل متعمق لحقول نوع MyBatis Oracle Blob Type
MyBatis يمارس Dao و Mapper
SQL الديناميكي والاستعلام المرتبط به في ممارسة MyBatis