مقدمة
اليوم ، دعنا نتعرف على Springboot دمج MyBatis. هناك عمومًا طريقتان لدمج MyBatis. يعتمد أحدهما على التعليق التوضيحي والآخر يعتمد على تكوين XML. اليوم ، دعنا نتعرف أولاً على تكامل MyBatis المستند إلى التعليقات التوضيحية. لن أقول الكثير أدناه ، دعنا نلقي نظرة على المقدمة التفصيلية
نظرًا لأنه MyBatis ، يجب أن يكون مرتبطًا بـ MyBatis ، وأنا أستخدم MySQL ، لذلك يحتاج أيضًا إلى إدخال MySQL.
<!-https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter-> <rependency> </reperency> <!-https://mvnrepository.com/artifact/mysql/mysql-connector-java-> <reperence> <roupiD> mysql </rougiD> </الاعتماد> mysql-connector-java </attifactid>
يتم إنشاء نموذج المستخدم هنا ، وهو مناسب للمقارنة مع جدول قاعدة البيانات. هنا ، يتم إنشاء قاعدة بيانات تسمى MyBatis في MySQL ، ويتم إنشاء جدول مستخدم. في الوقت نفسه ، يتم إنشاء فئة التعداد المستخدمين.
قم بإنشاء جدول `user` (` id` int (11) not null auto_increment ، `name` varchar (20) null null ،` age` int (11) default null ، `sex` varchar (20) null null ، chain` id `)) earch = innodb auto_increment = 9 default charset = utf8 ؛
package com.example.model ؛ import java.io.serializable ؛ يقوم مستخدم الفئة العامة بتنفيذ serializable {Override public string toString () {// todo method method method user "user [ + id +" ، name = " + name +" ، Age = "Age +"] ؛ } public int getId () {return id ؛ } public void setId (int id) {id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {name = name ؛ } public int getage () {return Age ؛ } public void setage (int Age) {Age = Age ؛ } معرف int الخاص ؛ اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ Uservesexenum Sex ؛ المستخدمين العامين getSex () {return sex ؛ } public void setSex (userexenum sex) {sex = sex ؛ }} package com.example.model ؛ enum public usersexenum {man ، woman}نحتاج هنا إلى مقارنة النموذج باستخدام SQL الذي يدير قاعدة البيانات. ما هي المقارنة التي يجب أن نستخدمها؟ ثم نحتاج إلى إنشاء خريطة. هناك إضافات وحذف وتعديلات وعمليات بحث هنا.
package com.example.mapper ؛ import java.util.list ؛ import org.apache.ibatis.annotations.delete ؛ import org.apache.ibatis.annotations.Insert ؛ import org.apache.ibatis.annotations.result ؛ import ؛ org.apache.ibatis.annotations.update ؛ import com.example.model. * ؛؛ الواجهة العامة usermapper {select ("select * from user") results ({result (property = "sex" ، column = "sex" ، javatype = usersexenum.class) ، result ("propert select ("SELECT * from user where id = #{id}") results ({result (property = "sex" ، column = "sex" ، javatype = usersexenum.class) ، result (property = "name" ، column = "name")} usone (int id) ؛ insert ("insert in user (name ، age ، sex) stable ( #{name} ، #{Age} ، #{sex})") void insert (user user) ؛ upDate ("تحديث اسم تعيين المستخدم =#{username} ، Age =#{Age} حيث id =#{id}") تحديث void (مستخدم المستخدم) ؛ delete ("حذف من المستخدم حيث id =#{id}") void delete (int id) ؛}تم تكوين الخريطة أعلاه ، فكيف يمكن للنظام معرفة مكان وضع الخريطة؟ لذلك هناك شرح @mapperscan.
package com.example.demo ؛ import org.mybatis.spring.annotation.mapperscan ؛ استيراد org.springframework.boot.springapplication ؛ import org.springframework.boot.autoconfigure.springblotapplication ؛ demoapplication {public static void main (string [] args) {springapplication.run (demoapplication.class ، args) ؛ }}هنا ، يتم إنشاء USERCONTROLLER ، واحد هو عرض جميع المستخدمين ، والآخر هو إضافة مستخدم جديد ثم عرض جميع المستخدمين.
package com.example.demo ؛ import java.util.list ؛ استيراد org.springframework.beans.factory.annotation.autowired ؛ استيراد org.springframework org.springframework.web.bind.annotation.requestmethod ؛ import com.example.mapper.usermapper ؛ import com.example.model.user ؛ import com.example.model.usersexenum ؛@controller@requestMapping ("/user") ASSERCONTROLLER requestmapping (value = "/AllUser.do"،method = requestMethod.get) السلسلة العامة getAllusers (نموذج النموذج) {list <serve> users = usermapper.getall () ؛ model.addattribute ("المستخدمون" ، المستخدمون) ؛ إرجاع "قائمة المستخدم" ؛ } @requestmapping (value = "/ensert.do"،method = requestMethod.get) السلسلة العامة adduser (نموذج النموذج) {user user = new user () ؛ user.setName ("cuiyw") ؛ user.setage (27) ؛ user.setsex (userexenum.man) ؛ usermapper.insert (user) ؛ قائمة <Sether> المستخدمين = usermapper.getAll () ؛ model.addattribute ("المستخدمون" ، المستخدمون) ؛ إرجاع "قائمة المستخدم" ؛ }}يتم تعيين الخريطة والنموذج أيضا أعلاه. للتفاعل مع قاعدة البيانات ، يجب عليك تكوين عنوان قاعدة البيانات والمعلومات الأخرى. تم الإبلاغ عن خطأ عند تشغيله هنا. الاستثناء الذي تم اختباره هو java.sql.sqlexception: قيمة المنطقة الزمنية للخادم 'Öð¹ú ± ê ¼ê ± ¼ä' غير معترف بها أو تمثل أكثر من منطقة زمنية واحدة. يجب عليك تكوين سائق الخادم أو JDBC (عبر خاصية تكوين ServertimeZone) لاستخدام قيمة منطقة زمنية أكثر تحديدًا إذا كنت ترغب في استخدام دعم المنطقة الزمنية. يتم تعيين المنطقة الزمنية التالية في MySQL: تعيين Global Time_zone = '+8:00' ؛
spring.mvc.view.prefix =/view/spring.mvc.view.suffix = .jspmybatis.type-aliases-package = com.example.modelspring.datasource.driverClassName = com.mysql.cj.jdbc.driverspring.datasource.url = JDBC: mysql: // localhost: 3306/mybatisspring.datasource.username = rootspring.datasource.password = 123456
7. قم بإنشاء صفحة لعرضها
هنا سنظل نستخدم JSP لعرض البيانات وفقًا للمدونة السابقة.
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <٪@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core Transitional // en "" http://www.w3 <tr> <th> name </h> <th> العمر </th> <th> الجنس </th> </tr> <c: foreach عناصر = "$ {المستخدمين}" var = "item"> <td> </c: foreach> </table> </body> </html>هنا ، أولاً ، فتح http: // localhost: 8080/user/alluser.do في المتصفح ، يمكنك رؤية قائمة المستخدمين ، ثم إدخال http: // localhost: 8080/user/insert.do ، وسترى أن القائمة تعرض خطًا إضافيًا من البيانات.
يعد استخدام التكامل المستند إلى التعليقات التوضيحية لـ MyBatis أسهل وأكثر ملاءمة ، ولكن له مزايا وعيوب. قد يكون متصلاً من الجداول المتعددة ، وقد يكون من الأفضل استخدام التكوين المستند إلى XML.
حسنًا ، ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.