تحضير
لإنشاء مشروع جديد Java أو Java WWEB ، تحتاج إلى استيراد الحزم التالية.
تم الانتهاء من العمل الأساسي ، وبعد ذلك سنبدأ في الوصول إلى الموضوع.
إنشاء فئة كيان جديدة
إنشاء فئة كيان جديدة تتوافق مع جدول قاعدة البيانات
حزمة com.edu.hpu.domain ؛ /***Author Administrator*فئة الكيان المقابلة لجدول المستخدم*/مستخدم الفئة العامة {// سمات فئة الكيان وأسماء الحقل للجدول تتوافق مع معرف int الخاص ؛ اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ // تغليف السمات العامة int getId () {return id ؛ } public void setId (int id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ }. }}أضف فئة أدوات MyBatis
تمت إضافة فئة الأدوات كما هو موضح أدناه ،
حزمة com.edu.hpu.util ؛ استيراد java.io.inputstream ؛ استيراد org.apache.ibatis.session.sqlsession ؛ استيراد org.apache.ibatis.session.sqlsessionfactory ؛ استيراد org.apache.ibatis.session.sqlsessionfactory ؛ استيراد org.apache.ibatis.session.sqlsessionfactorybuilder ؛ الطبقة العامة MyBatisutil {/** * الحصول على sqlsessionfactory * return sqlsessionfactory */sqlsessionfactionfactory getSqlSessionFactory () {string resource = "conf.xml" ؛ SQLSessionFactory Factory = New SQLSessionFactoryBuilder (). Build (IS) ؛ عودة المصنع } / ** * الحصول على sqlsession * return sqlsession * / public static sqlsession getSqlSession () {return getSqlSessionFactory (). opensession () ؛ } /** * الحصول على sqlsession * param isautocommit * true يعني أن كائن SQLSession الذي تم إنشاؤه سيتم إرسال المعاملة تلقائيًا بعد تنفيذ SQL * وسيلة خاطئة أن كائن SQLSession الذي تم إنشاؤه لن يقوم تلقائيًا بإرسال المعاملة بعد تنفيذ SQL. في هذا الوقت ، نحتاج إلى استدعاء sqlsession.commit () يدويًا لتقديم المعاملة * sqlsession */ public static sqlsession getSqlSession (isautocommit boolean) {return getSqlSessionFactory (). }}هناك طريقتان لإضافة البيانات وحذفها وبحثها وتعديلها باستخدام MyBatis ، وهما تشغيل ملف التكوين وتشغيل التعليقات التوضيحية.
التشغيل من خلال ملفات التكوين
ملف تكوين قاعدة البيانات كما يلي ، قم بتكوين معلومات قاعدة البيانات ،
<؟ <TransactionManager type = "jdbc" /> <!-تكوين معلومات اتصال قاعدة البيانات-> <dataSource type = "prouded"> <property name = "driver" value = "com.mysql.jdbc.driver" /> <property name = "url" value = "jdbc: mysql: // localhost: 3306/test؟ useUnicode = true & farmentSoding = utf-8 & zerodateTimeBehavior = converttonull"/> <property name = "username" value = "root"/> <property name = "password" يوجد ملف usermapper.xml ، usermapper.xml في الحزمة com.edu.hpu.mapping ، لذلك يتم كتابة المورد ك com/edu/hpu/mapping/usermapper.xml-> <mapper resource = "com/edu/hpu/mapping/usermapper.xml"/> <!
قم بتكوين ملف بيانات قاعدة بيانات التشغيل كما هو موضح أدناه ،
<؟ <!- اكتب بيانات الاستعلام SQL في علامة SELECT ، قم بتعيين سمة المعرف للعلامة المحددة إلى getUser. يجب أن تكون قيمة سمة المعرف فريدة من نوعها. لا يمكن إعادة استخدام سمة المعلمة للإشارة إلى نوع المعلمة المستخدم في الاستعلام. تشير سمة resultType إلى نوع مجموعة النتائج التي يتم إرجاعها بواسطة Query ResultType = "com.edu.hpu.domain.user" تعني أن نتيجة الاستعلام يتم تغليفها في كائن من فئة المستخدم والعودة إلى فئة المستخدم ، وهو ما هو فئة الكيان المقابلة لجدول المستخدمين-> <! resultType = "com.edu.hpu.domain.user"> حدد * من المستخدمين حيث id =#{id} </select> <!-إنشاء مستخدم (إنشاء)-> <إدراج معرف = "addUser" parametertype = "com.edu.hpu.domain.user"> أدخل (الاسم ، العمر) ( (إزالة)-> <delete id = "deleteuser" parametertype = "int"> delete من المستخدمين حيث id =#{id} </delete> <!-تعديل المستخدم (تحديث)-> <update id = "updateUser" parameterype = "com.edu.hpu.domain.user"> تحديث اسم المستخدم = </uptuday> <!-استعلام جميع المستخدمين-> <تحديد معرف = "getAllusers" resultType = "com.edu.hpu.domain.user"> حدد * من المستخدمين </select> </kapper> تم إكمال إضافة قاعدة البيانات والحذف والمراجعة من خلال ملفات التكوين بشكل أساسي. بعد ذلك ، يتم إعطاء فئة الاختبار.
يمكن إجراء الاختبارات كما هو موضح أدناه ،
حزمة com.edu.hpu.test ؛ استيراد java.util.list ؛ استيراد com.edu.hpu.domain.user ؛ استيراد com.edu.hpu.util.mybatisutil ؛ استيراد org.junit.test ؛ استيراد org.apache.ibatis.session.sqlsession ؛ الفئة العامة test2 {test public void testadd () {// sqlsession sqlsession = mybatisutil.getsqlsession (false) ؛ sqlsession sqlsession = mybatisutil.getsqlsession (true) ؛ / ** * خريطة سلسلة تعريف SQL ، * com.edu.hpu.mapping.usermapper هي قيمة سمة مساحة الاسم لعلامة Mapper في ملف usermapper.xml ، * يمكن العثور "com.edu.hpu.mapping.usermapper.adduser" ؛ // map sql string string user = new user () ؛ user.setName ("مستخدم جديد Xiaohuang") ؛ user.setage (20) ؛ // تنفيذ عملية إدراج int retresult = sqlsession.insert (بيان ، مستخدم) ؛ // إرسال المعاملات يدويًا // sqlsession.commit () ؛ // بعد تنفيذ SQL باستخدام sqlsession sqlsession.close () ؛ system.out.println (retresult) ؛ } test public void testupdate () {sqlsession sqlsession = mybatisutil.getsqlsession (true) ؛ /** * MAP SQL INTRIMENTIMENT ، * com.edu.hpu.mapping.usermapper هي قيمة سمة مساحة الاسم لعلامة Mapper في ملف USERMAPPER.XML ، * UpdateUser هي قيمة سمة المعرف لعلامة التحديث. يمكن العثور على SQL المراد تنفيذه من خلال قيمة سمة المعرف لعلامة التحديث */string string = "com.edu.hpu.mapping.usermapper.updateuser" ؛ // Mapping SQL ID String user user = new user () ؛ user.setid (3) ؛ user.setName ("Hello World") ؛ user.setage (25) ؛ // تنفيذ عملية التعديل int retresult = sqlsession.update (بيان ، مستخدم) ؛ // بعد تنفيذ SQL مع SQLSession ، تحتاج إلى إغلاق sqlsession sqlsession.close () ؛ system.out.println (retresult) ؛ } test public void testDelete () {sqlsession sqlsession = mybatisutil.getsqlsession (true) ؛ / ** * MAP SQL INTRESTINATION String ، * com.edu.hpu.mapping.usermapper هي قيمة سمة مساحة الاسم لعلامة MapPer في ملف usermapper.xml ، * يمكن العثور على قيمة سمة المعرف */ struct attritud "com.edu.hpu.mapping.usermapper.deleteuser" ؛ // تعيين سلسلة تعريف SQL // إجراء عملية حذف int retresult = sqlsession.delete (بيان ، 4) ؛ // بعد تنفيذ SQL باستخدام sqlsession sqlsession.close () ؛ system.out.println (retresult) ؛ } test public void testgetall () {sqlsession sqlsession = mybatisutil.getsqlsession () ؛ /** * تعيين سلسلة تعريف SQL ، * com.edu.hpu.mapping.usermapper هي قيمة سمة مساحة الاسم لعلامة Mapper في ملف usermapper.xml. * getAllusers هي قيمة سمة المعرف للعلامة المحددة. يمكن العثور على SQL المراد تنفيذه من خلال قيمة سمة ID لعلامة SELECT */string strup = "com.edu.hpu.mapping.usermapper.getAllusers" ؛ // رسم خرائط لسلسلة هوية SQL // تنفيذ عملية الاستعلام وتغليفًا تلقائيًا نتيجة Query في قائمة <Sether> return <ser> lstusers = sqlslist.select // بعد تنفيذ SQL مع SQLSession ، تحتاج إلى إغلاق sqlsession sqlsession.close () ؛ system.out.println (lstusers) ؛ }}العملية من خلال التعليقات التوضيحية
تتطلب التشغيل من خلال التعليقات التوضيحية كتابة واجهة ، ولكن لا يلزم تنفيذها ، كما هو موضح أدناه.
حزمة com.edu.hpu.mapping ؛ استيراد java.util.list ؛ استيراد com.edu.hpu.domain.user ؛ استيراد org.apache.ibatis.annotations.delete ؛ استيراد org.apache.ibatis.annotations.insert ؛ استيراد org.apache.ibatis.annotations.select ؛ استيراد org.apache.ibatis.annotations.update ؛ /** * Auuthor GACL * حدد الواجهة لرسم خرائط SQL ، حدد SQL المراد تنفيذه باستخدام التعليقات التوضيحية */الواجهة العامة USERMAPPER_11 {// استخدم التعليقات التوضيحية @insert لتحديد SQL المراد تنفيذه بواسطة MELONT ADD insert ("إدراج في المستخدم (الاسم ، العمر) ( #{name}) // استخدم التعليق التوضيحي @delete لتحديد SQL المراد تنفيذه بواسطة methodydebyid methoddelete ("delete من المستخدمين حيث id =#{id}") public deletebyid (int id) ؛ // استخدم التعليق التوضيحي update لتحديد SQL المراد تنفيذه بواسطة طريقة التحديث update ("تحديث المستخدمين SET NAME =#{name} ، Age =#{Age} حيث id =#{id}") تحديث int العام (مستخدم المستخدم) ؛ // استخدم التعليق التوضيحي @SELECT لتحديد SQL لتنفيذ طريقة getByID @select ("حدد * من المستخدمين حيث id =#{id}") المستخدم العام getByid (int id) ؛ // استخدم التعليق التوضيحي @SELECT لتحديد SQL لتنفيذ طريقة getAll @SELECT ("SELECT * من المستخدمين") القائمة العامة <Seter> getall () ؛ }في الوقت نفسه ، تحتاج إلى إضافة الواجهة المكتوبة إلى ملف تكوين قاعدة البيانات وإضافة العبارة التالية في conf.xml.
<mapper/>
حسنًا ، لقد تم الانتهاء منه بشكل أساسي ، وهنا فئة الاختبار التي يمكن اختبارها.
حزمة com.edu.hpu.test ؛ استيراد java.util.list ؛ استيراد com.edu.hpu.domain.user ؛ استيراد com.edu.hpu.mapping.usermapper_11 ؛ استيراد com.edu.hpu.util.mybatisutil ؛ استيراد org.apache.ibatis.session.sqlsession ؛ استيراد org.junit.test ؛ / ***Author Administrator*Test Test*/ public class test3 {test public void testadd () {sqlsession sqlsession = mybatisutil.getsqlsession (true) ؛ // احصل على كائن فئة التنفيذ لواجهة UserMapper. يتم بناء كائن فئة التنفيذ لواجهة USERMAPPER ديناميكيًا بواسطة sqlsession.getMapper (usermapper.class). usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class) ؛ مستخدم المستخدم = مستخدم جديد () ؛ user.setName ("الحكمة العظيمة هي أحمق") ؛ user.setage (20) ؛ int add = mapper.add (user) ؛ // sqlsession يجب إغلاقها بعد تنفيذ SQL مع sqlsession sqlsession.close () ؛ system.out.println (add) ؛ } test public void testupdate () {sqlsession sqlsession = mybatisutil.getsqlsession (true) ؛ // احصل على كائن فئة التنفيذ لواجهة UserMapper. يتم بناء كائن فئة التنفيذ لواجهة USERMAPPER ديناميكيًا بواسطة sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class) ؛ مستخدم المستخدم = مستخدم جديد () ؛ user.setid (3) ؛ user.setName ("الصوت الكبير والصوت") ؛ user.setage (26) ؛ // تنفيذ عملية التعديل int retresult = mapper.update (المستخدم) ؛ // بعد تنفيذ SQL باستخدام SQLSession ، تحتاج إلى إغلاق sqlsession sqlsession.close () ؛ system.out.println (retresult) ؛ } test public void testDelete () {sqlsession sqlsession = mybatisutil.getsqlsession (true) ؛ // احصل على كائن فئة التنفيذ لواجهة UserMapper ، ويتم تصميم كائن فئة التنفيذ لواجهة UserMapper ديناميكيًا بواسطة sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class) ؛ // تنفيذ عملية حذف int retresult = mapper.deleteByid (7) ؛ // بعد استخدام SQLSession لتنفيذ SQL ، تحتاج إلى إغلاق sqlsession sqlsession.close () ؛ system.out.println (retresult) ؛ } test public void testgetuser () {sqlsession sqlsession = mybatisutil.getsqlsession () ؛ // احصل على كائن فئة التنفيذ لواجهة UserMapper. يتم بناء كائن فئة التنفيذ لواجهة UserMapperi ديناميكيًا بواسطة sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class) ؛ // تنفيذ عملية الاستعلام وتغليف نتيجة الاستعلام تلقائيًا في مستخدم إرجاع المستخدم = mapper.getById (1) ؛ // بعد استخدام SQLSession لتنفيذ SQL ، تحتاج إلى إغلاق sqlsession sqlsession.close () ؛ System.out.println (user) ؛ } test public void testgetall () {sqlsession sqlsession = mybatisutil.getsqlsession () ؛ // احصل على كائن فئة التنفيذ لواجهة UserMapper. يتم بناء كائن فئة التنفيذ لواجهة USERMAPPER ديناميكيًا بواسطة sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class) ؛ . // بعد استخدام SQLSession Execution SQL ، تحتاج إلى إغلاق sqlsession sqlsession.close () ؛ system.out.println (lstusers) ؛ }}ما سبق هو شرح مفصل لتنفيذ MyBatis لإضافة البيانات والحذف والمراجعة التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فالرجاء ترك رسالة لي وسوف يرد المحرر لك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!