اكتب مثيلًا بسيطًا لبيانات MyBatis
1. معنى بناء جدول قاعدة البيانات DOB = تاريخ الميلاد
قم بإنشاء طلاب الجدول (رقم stud_id المفتاح الأساسي ، الاسم Varchar2 (20) ، البريد الإلكتروني varchar2 (20) ، تاريخ DOB) ؛
الجدول الذي تم إنشاؤه في قاعدة بيانات Oracle يعني أن الإنشاء ناجح. إذا تم استخدام الاسم ، فيمكنك حذفه قبل إنشاء الجدول: طلاب الجدول. أو Cascade Delete Drop Table طلاب القيود المتتالية ؛ ثم إعادة إنشائها مرة أخرى.
2 إنشاء مشروع جديد
2.1 قم بإنشاء الحزمة والفئة المقابلة ، حيث يكون الطالب هو الكائن الذي نريد إدراجه. نظرًا لأن نوع البيانات يتوافق مع القيم الموجودة في قاعدة البيانات ، يمكننا إدخال الكائن بأكمله. لذلك ، نستخدم فئة POJO لتغليف الكائن.
حزمة com.mybatis.pojo ؛ استيراد java.util.date ؛ طالب الطبقة العامة {Private Integer Studid ؛ اسم السلسلة الخاصة ؛ البريد الإلكتروني الخاص بالسلسلة الخاصة ؛ تاريخ خاص DOB ؛ الطالب العام () {} // لاحظ المُنشئ بدون معلمات طالب عام (integer Studid ، اسم السلسلة ، البريد الإلكتروني السلسلة ، تاريخ dob) {this.studid = studid ؛ this.name = name ؛ this.email = البريد الإلكتروني ؛ this.dob = dob ؛ } عدد صحيح عام getStudId () {return Studid ؛ } public void setStudId (integer studid) {this.studid = studid ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getEmail () {return email ؛ } public void setemail (string email) {this.email = email ؛ } التاريخ العام getDob () {return dob ؛ } public void setDob (Date dob) {this.dob = dob ؛ } Override public string toString () {return "student [ +" + studid + "، name =" + name + "، email =" + email + "، dob =" + dob + "] ؛ }}3. تقديم حزمة MyBatis الأساسية وحزم التبعية الاختيارية في المشروع
تنزيل الملف: تنزيل حزمة MyBatis
أحدث إصدار تنزيل: https://github.com/mybatis/mybatis-3/releases
حزمة مطلوبة mybatis-3.3.0.jar ojdbc14.jar
حزمة اختيارية junit-4.7.jar log4j-1.2.17.Jar
من بينها ، يتم استخدام mybatis-3.3.0.jar لتنفيذ الوظائف التي توفرها MyBatis ، ويستخدم OJDBC14.JAR للاتصال بقاعدة البيانات ، ويستخدم Junit-4.7.jar لتنفيذ الاختبار الوظيفي ، ويستخدم Log4J-1.2.17.JAR لأداء التسجيل
كما هو موضح في الشكل أدناه: قم بإنشاء جرة مجلد جديدة في دليل المشروع ، ونسخ ولصق الحزم التي تحتاجها لاستيرادها إلى دليل جرة
ملاحظة: لا تستخدم الصينية عند تخزين حزم الجرة محليًا.
ثم انقر بزر الماوس الأيمن لتحديد الملفات الأربعة في دليل JAR ، انقر لإضافة "BuildPath-> إضافة مسار" ، وسترى الواجهة التالية: فهذا يعني أن المسار يضاف بنجاح
4. تقديم ملف قيود Configuration Configuration MyBatis في المشروع
وبالمثل ، قم بإنشاء دليل DTD جديد ضمن المشروع ونسخ ملف القيد إلى الدليل ، كما هو موضح في الشكل أدناه: بنية ملف DTD ، تنزيل ملف DTD:
http://download.csdn.net/download/suwu150/9660699
تتمثل وظيفة ملف DTD في تقييد ملف التكوين XML ، بحيث يمكن للمبرمجين كتابة ملف XML وفقًا للمواصفات ، ويمكن لـ MyBatis قراءةه بشكل صحيح. يتم تكوين DTD أعلاه محليًا ، وبالطبع يمكننا أيضًا استخدام اتصال الموقع الرسمي لتقييده.
5 يتم تقديم ملفات التكوين وملفات رسم الخرائط في MyBatis في المشروع على التوالي
1) mybatis-config.xml أدناه SRC:
أولاً ، نقوم بربط قيود DTD المحلية ، أدخل الشكل التالي أدناه ، أدخل XML في مربع البحث ، حدد اسم تكوين كتالوج XML ، ثم انقر فوق الزر "إضافة" على اليمين
تظهر الواجهة الموضحة في الشكل أدناه ، حيث يكون موقع الموقع وموقع المفتاح فارغًا. تم تكوين الشكل أدناه. محتوى المفتاح هو -// mybatis.org//dtd config 3.0 // en. محتوى الموقع هو خاص بك. يمكنك تحديده من خلال مساحة العمل ، أي ملف DTD الذي نسخناه إلى المشروع في وقت سابق (في الخطوة 4):
انقر فوق "موافق" ، الآن يمكننا كتابة ملف تكوين XML. الغرض من إضافة قيود هو توحيد كتابة المبرمج لضمان تحليل MyBatis بشكل طبيعي.
كما هو موضح في الشكل أدناه: حدد SRC وانقر بزر الماوس الأيمن لإنشاء ملف جديد MyBatis-Config.xml
ملاحظة: يجب أن تتصدر بداية ملف XML ، ولا يجب أن تكون هناك مسافات أمامه.
<؟ التكوين العام "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <Typealiases> <! </typealiases> <!- تكوين بيئة قاعدة البيانات حيث يكون التطوير هو اسم قاعدة البيانات الافتراضي. TransactionManager نوع JDBC. يستخدم مصدر بيانات مصدر البيانات تجمعات الاتصال-> <البيئات default = "development"> <البيئة id = "development"> <TransactionManager type = "jdbc"> </stallctactionManager> <dataSource type = "prouded"> <!-تكوين معلومات قاعدة البيانات. استخدم قاعدة بيانات Oracle هنا-> <property name = "driver" value = "oracle.jdbc.driver.oracledriver" /> <property name = "url" value = "jdbc: oracle: thin:@127.0.0.1: 1521: orcl" /> <property name = username value = "briup" /> </visply> </eversionments> <!-قم بتكوين مسار تعيين ملفات XML ، حيث يمكنك تنفيذ عمليات SQL-> <mappers> <mapper Resource = "com/mybatis/mappers/studentMapper.xml"/> </mappers> </configuration>
2) studentMapper.xml أسفل حزمة com.mybatis.mappers:
أولاً ، نقوم بتنفيذ interface com.mybatis.mappers ؛ حزمة لإنشاء واجهة جديدة studentMapper.java ضمن الحزمة لتتوافق مع عبارة SQL (رسم الخرائط) في ملف XML ، حتى نتمكن من الاتصال به
حزمة com.mybatis.mappers ؛ استيراد java.util.list ؛ استيراد com.mybatis.pojo.student ؛ الواجهة العامة studentMapper {list <Tudent> bindAllStudents () ؛ الطالب FindStudentByid (INTEGER ID) ؛ إدراج باطل (طالب طالب) ؛ }استخدم نفس الطريقة لتقييد ملفات mapper
ثم اكتب رمز XML:
<؟ الواجهة التي نحددها. وبهذه الطريقة يمكنك استخدام الواجهة لاستدعاء عبارة Mapping SQL. يجب أن يتوافق هذا الاسم مع الواجهة-> <mapper namepace = "com.mybatis.mappers.studentMapper"> <resultmap type = "student" id = "studentresult"> <id property = "studid" column = "stud_id" /> <result propert </resultmap> <select id = "findallstudents" resultmap = "studentResult"> حدد * من الطلاب </select> <!-إذا كان اسم العمود واسم العقار غير متسق ، فيمكنك إعطاء اسم مستعار لعمود الاستعلام-> <تحديد المعرف = "findStudentByid" المعلمة "int" int "resulttype =" stud_id =#{id} </select> <insert id = "insertStudent" parametertype = "student"> insert في stud_id ، name ، email ، dob) القيم (#{studid} ،#{name} ،#{elemt} ،#{dob}) </insert> </mapper> **************************************************************
ملاحظة: لا تكتب فاصلة فاصلة في نهاية عبارة SQL المكتوبة في ملف XML ، وإلا سيتم الإبلاغ عن خطأ. ORA-00911: أحرف غير صالحة
**************************************************************
6 تكوين إخراج السجل في ملف log4j.properties:
تحت الموقع SRC ، اسم الملف log4j.properties
محتوى:
log4j.rootlogger = debug ، stdout log4j.appender.stdout = org.apache.log4j.consoleappender log4j.appender.stdout.layout = org.apache.log4j.patternlayout log4j.stdout.layout.conversion. log4j.logger.java.sql.resultset = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = debug log4j.logger.java.sql.statement = debug log4j.logger.java.sql.preped
7 قم بإنشاء فئة اختبار StudentMapperTest.java
حزمة com.mybatis.test ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstream ؛ استيراد java.util.date ؛ استيراد org.apache.ibatis.io.resources ؛ استيراد org.apache.ibatis.session.sqlsessionfactory ؛ استيراد org.apache.ibatis.session.sqlsessionfactory ؛ استيراد org.apache.ibatis.session.sqlsessionfactorybuilder ؛ استيراد org.junit.test ؛ استيراد com.mybatis.mappers.studentMapper ؛ استيراد com.mybatis.pojo.student ؛ فئة عامة studentMapperTest {test public void test_insertStudent () {sqlsession session = null ؛ حاول {// الحصول على ملف التكوين inputStream inputStream = resources.getResourCeasStream ("MyBatis-Config.xml") ؛ // إنشاء كائن المصنع sqlsessionfactory sqlsessionfactory = sqlsessionfactorybuilder () // استخدام كائن المصنع لإنشاء جلسة SQLSession = sqlsessionfactory.opensession () ؛ // استخدم SQLSession للحصول على كائن فئة التنفيذ لواجهة التعيين. يشير مرجع الواجهة إلى كائن فئة التنفيذ studentMapper StudentMapper = session.getMapper (studentMapper.class) ؛ الطالب الطالب = طالب جديد (1 ، "Suwu150" ، "[email protected]" ، Date ()) ؛ studentMapper.InsertStudent (طالب) ؛ } catch (ioException e) {session.rollback () ؛ E.PrintStackTrace () ؛ }}}8 بعد التشغيل الناجح ، سترى المعلومات ذات الصلة حول تشغيل هذا البرنامج من خلال سجل Log4J في وحدة التحكم ، على النحو التالي:
يمكنك رؤية المعلومات التالية عند الاستعلام عن قاعدة البيانات
9 بعض الحزم الأساسية ل mybatis
في كل مرة يتم فيها قراءة ملف التكوين ، يتم إنشاء كائن المصنع SQLSessionFactory ، ثم يتم إنشاء كائن SQLSession. على الرغم من أن هذه العملية ليست معقدة ، فهي أيضًا عملية رمز متكررة ، لذلك يمكننا ببساطة تغليفها:
حزمة com.mybatis.utils ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstream ؛ استيراد org.apache.ibatis.io.resources ؛ استيراد org.apache.ibatis.session.sqlsession ؛ استيراد org.apache.ibatis.session.sqlsessionfactory ؛ استيراد org.apache.ibatis.session.sqlsessionfactorybuilder ؛ الطبقة العامة mybatissqlsessionfactory {private static sqlsessionfactory sqlsessionfactory ؛ SQLSessionFactory getSqlSessionFactory () {if (sqlsessionfactory == null) {inputStream inputStream = null ؛ حاول {inputStream = Resources.getResourCeasStream ("MyBatis-config.xml") ؛ sqlsessionfactory = جديد sqlsessionfactorybuilder (). build (inputStream) ؛ } catch (ioException e) {E.PrintStackTrace () ؛ رمي new RunTimeException (E.GetCause ()) ؛ }} return sqlsessionfactory ؛ } SQLSession Sqlsession العام () {return opensession (false) ؛ // التقديم اليدوي افتراضيًا ، لذلك نحتاج إلى إرسال عند الاتصال} SQLSession Opensession (Autocommit المنطقي) {return getSqlSessionFactory (). }}بعد ذلك ، في كل مرة تستخدمها ، تحتاج فقط إلى استدعاء الطريقة الثابتة في هذه الفئة.
يمكن اختصار الكود أعلاه على النحو التالي
mybatissqlsessionfactory.opensession ().
10 في الاختبار أعلاه ، أكملنا فقط الوظائف المضافة. دعنا ننفذ وظائف الحذف والتعديل والاستعلام:
في ملف التعيين ، قم بعمل التكوين التالي:
<؟ الواجهة التي نحددها. وبهذه الطريقة يمكنك استخدام الواجهة لاستدعاء عبارة Mapping SQL. يجب أن يتوافق هذا الاسم مع الواجهة-> <mapper namepace = "com.mybatis.mappers.studentMapper"> <resultmap type = "student" id = "studentresult"> <id property = "studid" column = "stud_id" /> <result propert </resultmap> <select id = "findallstudents" resultmap = "studentResult"> حدد * من الطلاب </select> <!-إذا كان اسم العمود واسم العقار غير متسق ، فيمكنك إعطاء اسم مستعار لعمود الاستعلام-> <تحديد المعرف = "findStudentByid" المعلمة "int" int "resulttype =" stud_id =#{id} </select> <insert id = "insertStudent" parametertype = "student"> insert في الطلاب (stud_id ، الاسم ، البريد الإلكتروني ، dob) قيم (#{studid} ،#{name} ،#{elemt} ،#{dob}) </insert> <delete id = stud_id =#{id} </delete> <update id = "updateStudentById" parametertype = "student"> upirated update set name =#{name} ، email =#{email} حيث stud_id =#{Studid} </update> </mapper>في فئة الواجهة ، قم بعمل التكوين التالي:
حزمة com.mybatis.mappers ؛ استيراد java.util.list ؛ استيراد com.mybatis.pojo.student ؛ الواجهة العامة studentMapper {list <Tudent> bindAllStudents () ؛ الطالب FindStudentByid (INTEGER ID) ؛ إدراج باطل (طالب طالب) ؛ void deletestudentbyid (integer id) ؛ void updateStudentByid (طالب الطالب) ؛ }اكتب الرمز التالي في ملف الاختبار:
حزمة com.mybatis.test ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstream ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ استيراد org.apache.ibatis.io.resources ؛ استيراد org.apache.ibatis.session.sqlsessionfactory ؛ استيراد org.apache.ibatis.session.sqlsessionfactorybuilder ؛ استيراد org.junit.test ؛ استيراد com.mybatis.mappers.studentMapper ؛ استيراد com.mybatis.pojo.student ؛ استيراد com.mybatis.utils.mybatissqlsessionfactory ؛ فئة عامة studentMapperTest {test public void test_insertStudent () {sqlsession session = null ؛ حاول {// الحصول على ملف التكوين inputStream inputStream = resources.getResourCeasStream ("MyBatis-Config.xml") ؛ // إنشاء كائن المصنع sqlsessionfactory sqlsessionfactory = sqlsessionfactorybuilder () // استخدام كائن المصنع لإنشاء جلسة SQLSession = sqlsessionfactory.opensession () ؛ // استخدم SQLSession للحصول على كائن فئة التنفيذ لواجهة التعيين. يشير مرجع الواجهة إلى كائن فئة التنفيذ studentMapper StudentMapper = session.getMapper (studentMapper.class) ؛ الطالب الطالب = طالب جديد (2 ، "Suwu150" ، "[email protected]" ، Date ()) ؛ studentMapper.InsertStudent (طالب) ؛ session.Commit () ؛ system.out.println ("الانتهاء من التنفيذ") ؛ } catch (ioException e) {session.rollback () ؛ E.PrintStackTrace () ؛ } }Test public void test_deletestudentByid () {sqlsession session = null ؛ الجلسة = mybatissqlsessionfactory.opensession () ؛ // استخدم الفئة المغلفة // استخدم sqlsession للحصول على كائن فئة التنفيذ لواجهة التعيين. يشير مرجع الواجهة إلى كائن فئة التنفيذ studentMapper StudentMapper = session.getMapper (studentMapper.class) ؛ studentMapper.deletestudentByid (2) ؛ session.Commit () ؛ system.out.println ("الانتهاء من التنفيذ") ؛ } test public void test_updatestudentByid () {sqlsession session = null ؛ الجلسة = mybatissqlsessionfactory.opensession () ؛ // استخدم الفئة المغلفة // استخدم sqlsession للحصول على كائن فئة التنفيذ لواجهة التعيين. يشير مرجع الواجهة إلى كائن فئة التنفيذ studentMapper StudentMapper = session.getMapper (studentMapper.class) ؛ الطالب الطالب = طالب جديد () ؛ student.setStudid (1) ؛ student.setName ("sususu") ؛ student.setemail ("[email protected]") ؛ studentMapper.updateStudentByid (طالب) ؛ session.Commit () ؛ system.out.println ("الانتهاء من التنفيذ") ؛ } test public void test_findstudentByid () {sqlsession session = null ؛ الجلسة = mybatissqlsessionfactory.opensession () ؛ // استخدم الفئة المغلفة // استخدم sqlsession للحصول على كائن فئة التنفيذ لواجهة التعيين. يشير مرجع الواجهة إلى كائن فئة التنفيذ studentMapper StudentMapper = session.getMapper (studentMapper.class) ؛ الطالب الطالب = studentMapper.FindStudentByid (1) ؛ System.out.println (الطالب) ؛ System.out.println (الطالب) ؛ system.out.println ("الانتهاء من التنفيذ") ؛ } test public void test_findallstudents () {sqlsession session = null ؛ الجلسة = mybatissqlsessionfactory.opensession () ؛ // استخدم الفئة المغلفة // استخدم sqlsession للحصول على كائن فئة التنفيذ لواجهة التعيين. يشير مرجع الواجهة إلى كائن فئة التنفيذ studentMapper StudentMapper = session.getMapper (studentMapper.class) ؛ قائمة <Student> list = studentMapper.FindAllStudents () ؛ system.out.println (list) ؛ system.out.println ("الانتهاء من التنفيذ") ؛ }}وبهذه الطريقة ، نكممل الإضافة والحذف والتعديل والبحث عن كائنات الطالب
ما سبق هو مثال رمز MyBatis المضافة وحذفه وتعديله وتفتيشه بواسطة المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!