English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MyBatis هو إطار عمل عظيم للتحكم في الطبقات الداخلية يدعم الاستعلامات العادية، الدوال المخزنة، والتحويلات المتقدمة. يزيل MyBatis تقريبًا كل الكود الخاص بـ JDBC وضبط المعلمات يدويًا وأيضًا تغليف نتائج الجلسة. يمكن استخدام MyBatis بسيطًا باستخدام XML أو التعليقات لتهيئة وتحويل البيانات من واجهات البرمجة إلى سجلات قاعدة البيانات.
1. قم بإنشاء المشروع، ثم تحميل jar
قم بإنشاء مشروع Java أو مشروع Web، ثم قم بتحميل مكتبات MyBatis والاعتمادات وملفات jar لقاعدة البيانات، أنا أستخدم قاعدة بيانات Oracle10g
mybatis-3.2.2.jar محرك النواة
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
ملف jar classes12.jar لعبرة Oracle10g
2. قم بإنشاء ملف تكوين الاتصال بقاعدة البيانات sqlMapConfig.xml
قم بإنشاء ملف sqlMapConfig.xml تحت مجلد src
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--配置数据源,环境--> <!--可以配置多个环境,一个测试时候用的,一个上线时候用的--> <environments default="test"> <!--测试环境--> <environment id="test"> <!--配置事务 : JDBC事务/MANAGED交给容器的事务--> <transactionManager type="JDBC"></transactionManager> <!--数据源 : POOLED池化/UNPOOLED非池化/JNDI密码加密,安全性高--> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="luogg"/> </dataSource> </environment> <!--服务器环境--> <environment id="deploy"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="luogg"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/luogg/mapper/PersonMapper.xml"/> </mappers> </configuration>
3. قم بإنشاء مجلد test تحت src، ثم قم بإنشاء ملف TestMybatis.java تحت مجلد test
package test; import com.luogg.domain.Person; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; /** * تم إنشاؤه بواسطة luogg في 2017/2/17. */ public class TestMybatis { @Test public void init() throws IOException { /** * اختبار اتصال قاعدة البيانات * 1. تعريف متغير String من النوع resource يشير إلى ملف xml الخاص بالاتصال بقاعدة البيانات الذي تم تكوينه * 2. إنشاء تدفق إدخال لقراءة ملف تكوين قاعدة البيانات الخاص بنا * 3. إنشاء مصنع باستخدام تدفق الإدخال * 4. بعد وجود مصنع، افتح المصنع */ String resource = "sqlMapConfig.xml"; InputStream is = Resources.getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); }
في هذه المرحلة، يمكننا إجراء اختبار وحدات لمعرفة ما إذا تم إنشاء session أم لا، اللون الأخضر يعني النجاح في الإنشاء، لذا سنقوم بإنشاء جدول قاعدة البيانات وكتابة أوامر SQL
4.إنشاء قاعدة البيانات، وإدخال البيانات
CREATE TABLE person( ID NUMBER(2), NAME VARCHAR2(20), sex NUMBER(2), age NUMBER(3) ) -- إدخال البيانات، انقر على زر القفل أدناه، ثم انقر على + SELECT * FROM person FOR UPDATE
5.أنشئ مجلد com.luogg.domain في src وأنشئ فئة Person.java كشخصيةbean
package com.luogg.domain; /** * تم إنشاؤه بواسطة luogg في 2017/2/17. */ public class Person { private String name; private int sex; private int age; private int id; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", sex=" + sex + ", age=" + age + ", id=" + id + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
6.إنشاء ملف 映射 المضيف المتناسب مع قاعدة البيانات، في مجلد src أنشئ مكتبة com.luogg.mapper وإنشاء ملف PersonMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--تكوين المساحة الاسمية، المساحة الاسمية + .id هو علامة مميزة لجملة SQL الفريدة--> <mapper namespace="com.luogg.mapper.PersonMapper"> <!--استعلام جميع البيانات، المعاملات، معامل resultType، معامل parameterType--> <!--تنبيه: إذا كانت هناك جملة SQL تحتوي على مجموعة يجب ملؤها، مثل استعلام جميع البيانات، عودة مجموعة Person، قم بملء معامل resultType مباشرةً بـ مسار + نوع المجموعة--> مثلاً: عودة مجموعة Person، قم بملء مسار Person Bean + Person--> <select id="find" resultType="com.luogg.domain.Person"> SELECT * from person </select> </mapper>
7.في ملف التكوين الأساسي sqlMapConfig.xml قم بإنشاء خريطة، لتمكين التعرف على ملف التكوين الذي كتبت فيه جملة SQL
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--配置数据源,环境--> <!--可以配置多个环境,一个测试时候用的,一个上线时候用的--> <environments default="test"> <!--测试环境--> <environment id="test"> <!--配置事务 : JDBC事务/MANAGED交给容器的事务--> <transactionManager type="JDBC"></transactionManager> <!--数据源 : POOLED池化/UNPOOLED非池化/JNDI密码加密,安全性高--> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="luogg"/> </dataSource> </environment> <!--服务器环境--> <environment id="deploy"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="luogg"/> </dataSource> </environment> </environments> <!--ملف رسم mapper--> <mappers> <mapper resource="com/luogg/mapper/PersonMapper.xml"/> </mappers> </configuration>
8. العودة إلى فئة TestMybatis.java لزيارة جملة sql في ملف التكوين وعرض مجموعة النتائج
package test; import com.luogg.domain.Person; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; /** * تم إنشاؤه بواسطة luogg في 2017/2/17. */ public class TestMybatis { @Test public void init() throws IOException { /** * اختبار اتصال قاعدة البيانات * 1. تعريف متغير String من النوع resource يشير إلى ملف xml الخاص بالاتصال بقاعدة البيانات الذي تم تكوينه * 2. إنشاء تدفق إدخال لقراءة ملف تكوين قاعدة البيانات الخاص بنا * 3. إنشاء مصنع باستخدام تدفق الإدخال * 4. بعد وجود مصنع، افتح المصنع * 5. الوصول إلى جملة SQL في ملف التكوين من خلال session */ String resource = "sqlMapConfig.xml"; InputStream is = Resources.getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); //كيفية الوصول إلى جملة SQL في PersonMapper.xml؟ مسمى المساحة + .id List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.find"); System.out.println(list.size()); for(Person p : list){ System.out.println(p); } } }
نتيجة التنفيذ:
ما تم ذكره أعلاه هو دليل تعليمي لمقدمة mybatis، آمل أن يكون مفيدًا لكم، إذا كان لديكم أي أسئلة، يرجى ترك تعليق، وسأقوم بالرد على أسئلتكم في أقرب وقت. شكرًا جزيلاً لدعمكم لموقع呐喊 التعليمي!
بيان: محتويات هذا المقال تم جمعها من الإنترنت، وتعتبر ملكية مالك المشارك، وقد تم إدراجها من قبل مستخدمي الإنترنت بذاتهم، ويستخدم هذا الموقع فقط لأغراض عرض而不 يمتلك حقوق الملكية، ويتمتع بمعالجة يدوية، ولا يتحمل أي مسؤولية قانونية ذات صلة. إذا اكتشفتم محتويات مخالفة لحقوق النسخ، يرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # ب @) للإبلاغ، وقدموا الأدلة ذات الصلة، وإذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتويات المزعجة بشكل فوري.