คำนำ
วันนี้มาเรียนรู้เกี่ยวกับ Springboot ที่รวม mybatis โดยทั่วไปมีสองวิธีในการรวม mybatis หนึ่งขึ้นอยู่กับคำอธิบายประกอบและอื่น ๆ ขึ้นอยู่กับการกำหนดค่า XML วันนี้ก่อนอื่นมาเรียนรู้เกี่ยวกับการรวม MyBatis ที่ใช้คำอธิบายประกอบ ฉันจะไม่พูดมากขึ้นด้านล่างเรามาดูการแนะนำรายละเอียด
เพราะมันเป็น mybatis จึงต้องเกี่ยวข้องกับ mybatis และฉันใช้ mysql ดังนั้นจึงจำเป็นต้องแนะนำที่เกี่ยวข้องกับ MySQL
<!-https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter-> <การพึ่งพา <Sersion> 1.3.2 </Sident> </predency> <!-https://mvnrepository.com/artifact/mysql/mysql-connector-java-> <cendency> <roupid> mysql </groupid>
โมเดลผู้ใช้ถูกสร้างขึ้นที่นี่ซึ่งสะดวกสำหรับการเปรียบเทียบกับตารางฐานข้อมูล ที่นี่ฐานข้อมูลชื่อ MyBatis ถูกสร้างขึ้นใน MySQL และสร้างตารางผู้ใช้ ในขณะเดียวกันก็มีการสร้าง Usersexenum คลาสที่แจงนับ
สร้างตาราง `ผู้ใช้ '(` id` int (11) ไม่ใช่ null auto_increment, `name` varchar (20) ค่าเริ่มต้น null,` อายุ' int (11) ค่าเริ่มต้น null, `sex` varchar (20) ค่าเริ่มต้น, คีย์หลัก
แพ็คเกจ com.example.model; นำเข้า java.io.serializable; ผู้ใช้ระดับสาธารณะใช้ serializable {@Override สตริงสาธารณะ toString () {// วิธีการที่สร้างขึ้นอัตโนมัติ stub return "ผู้ใช้ [id =" + id + ", ชื่อ =" + ชื่อ + ", อายุ =" } สาธารณะ int getId () {return id; } โมฆะสาธารณะ setId (int id) {id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {name = name; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {อายุ = อายุ; } ID INT ส่วนตัว; ชื่อสตริงส่วนตัว; อายุ int ส่วนตัว; เซ็กส์ผู้ใช้ส่วนตัว Public UsersExenum getSex () {return sex; } โมฆะสาธารณะ setsex (เพศผู้ใช้งานเซ็กส์) {เพศ = เพศ; - แพ็คเกจ com.example.model; enum public enum usersExenum {man, woman}ที่นี่เราต้องเปรียบเทียบโมเดลกับ SQL ที่ทำงานฐานข้อมูล เราควรใช้การเปรียบเทียบอะไร จากนั้นเราต้องสร้าง Mapper มีการเพิ่มเติมลบการดัดแปลงและการค้นหาที่นี่
แพ็คเกจ com.example.mapper; นำเข้า java.util.list; นำเข้า org.apache.ibatis.annotations.delete; นำเข้า org.apache.ibatis.annotations.insert; นำเข้า org.apache.ibatis.annotations.result; org.apache.ibatis.annotations.update; นำเข้า com.example.model. * ;; อินเตอร์เฟสสาธารณะ usermapper {@select ("เลือก * จากผู้ใช้") @results ({@Result (คุณสมบัติ = "เพศ", คอลัมน์ = "เพศ" getall (); @Select ("เลือก * จากผู้ใช้ที่ id = #{id}") @Results ({@Result (property = "sex", คอลัมน์ = "sex", javatype = usersexenum.class), @Result (property = "ชื่อ", คอลัมน์ = "ชื่อ")}) @Insert ("แทรกลงในผู้ใช้ (ชื่ออายุเพศ) ค่า ( #{ชื่อ}, #{อายุ}, #{sex})") void แทรก (ผู้ใช้ผู้ใช้); @UpDate ("อัปเดตชื่อผู้ใช้ชื่อ =#{ชื่อผู้ใช้}, อายุ =#{อายุ} โดยที่ id =#{id}") โมฆะอัปเดต (ผู้ใช้ผู้ใช้); @Delete ("ลบจากผู้ใช้โดยที่ id =#{id}") void delete (int id);}Mapper ได้รับการกำหนดค่าไว้ด้านบนดังนั้นระบบจะรู้ได้อย่างไรว่า Mapper วางอยู่ที่ไหน? ดังนั้นจึงมีคำอธิบายประกอบ @mapperscan
แพ็คเกจ com.example.demo; นำเข้า org.mybatis.spring.annotation.mapperscan; นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.springbootapplication; {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (demopoplication.class, args); -ที่นี่ UserController ถูกสร้างขึ้นหนึ่งคือการแสดงผู้ใช้ทั้งหมดและอีกอย่างคือการเพิ่มผู้ใช้ใหม่จากนั้นแสดงผู้ใช้ทั้งหมด
แพ็คเกจ com.example.demo; นำเข้า java.util.list; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.ui.model. org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.requestmethod; นำเข้า com.example.mapper.usermapper; นำเข้า com.example.model.user; usercontroller {@autowired ส่วนตัว Usermapper Usermapper; @RequestMapping (value = "/AllUser.do",Method = requestMethod.get) สตริงสาธารณะ getAllusers (รุ่นโมเดล) {รายการ <ผู้ใช้> ผู้ใช้ = usermapper.getAll (); model.addattribute ("ผู้ใช้" ผู้ใช้); ส่งคืน "ผู้ใช้"; } @RequestMapping (value = "/insert.do",Method = requestMethod.get) สตริงสาธารณะ adduser (รุ่นรุ่น) {ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setName ("cuiyw"); user.setage (27); user.setSex (usesExenum.man); usermapper.insert (ผู้ใช้); รายการ <user> ผู้ใช้ = usermapper.getall (); model.addattribute ("ผู้ใช้" ผู้ใช้); ส่งคืน "ผู้ใช้"; -Mapper และ Model ยังถูกตั้งค่าไว้ด้านบน ในการโต้ตอบกับฐานข้อมูลคุณต้องกำหนดค่าที่อยู่ฐานข้อมูลและข้อมูลอื่น ๆ มีการรายงานข้อผิดพลาดเมื่อทำงานที่นี่ข้อยกเว้นที่ถูกทอดทิ้งคือ 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. jdbc: mysql: // localhost: 3306/mybatisspring.datasource.username = rootspring.datasource.password = 123456
7. สร้างหน้าเพื่อแสดง
ที่นี่เราจะยังคงใช้ JSP เพื่อแสดงข้อมูลตามบล็อกก่อนหน้า
<%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8" pageencoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html> <head> <meta http-equiv = "เนื้อหาที่อยู่ที่นี่ <tr> <th> ชื่อ </th> <th> อายุ </th> <th> เพศ </th> </tr> <c: foreach items = "$ {ผู้ใช้}" var = "item"> <tr> <td> $ {item.name} </td> <td> $ {item.age} </c: foreach> </body> </body> </html>ที่นี่เปิด http: // localhost: 8080/ผู้ใช้/Alluser.do ในเบราว์เซอร์คุณสามารถดูรายชื่อผู้ใช้จากนั้นป้อน http: // localhost: 8080/user/insert.do และคุณจะเห็นว่ารายการแสดงบรรทัดข้อมูลเพิ่มเติม
การใช้การรวมคำอธิบายประกอบของ mybatis นั้นง่ายกว่าและสะดวกกว่า แต่ก็มีทั้งข้อดีและข้อเสีย มันอาจจะไม่สะดวกสำหรับการเชื่อมต่อหลายตารางและอาจเป็นการดีกว่าที่จะใช้การกำหนดค่าที่ใช้ XML
โอเคข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com