Kata pengantar
Hari ini, mari kita pelajari tentang Springboot mengintegrasikan mybatis. Umumnya ada dua cara untuk mengintegrasikan mybatis. Satu didasarkan pada anotasi dan yang lainnya didasarkan pada konfigurasi XML. Hari ini, mari kita pelajari tentang integrasi Mybatis berbasis anotasi. Saya tidak akan banyak bicara di bawah ini, mari kita lihat perkenalan yang terperinci
Karena itu adalah mybatis, itu harus terkait dengan mybatis, dan saya menggunakan mysql, jadi itu juga perlu memperkenalkan mySQL yang terkait.
<!-https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter-> <dependency> <roupid> org.mybatis.spring.boot </groupid> <t ArtiFist> mygatis-mybatis.spring.boot </groupid> <t Artifact> mybaticd> <version> 1.3.2 </version> </dependency> <!-https://mvnrepository.com/artifact/mysql/mysql-connector-java-> <dep dependency> <groupid> </ArtIcid> <ArtifacTid> MySQL-Connector-java </articid> <ArtifactId> MySQL-Connector-java </Articid
Model pengguna dibuat di sini, yang nyaman untuk dibandingkan dengan tabel database. Di sini, database bernama MyBatis dibuat di MySQL, dan tabel pengguna dibuat. Pada saat yang sama, kelas enumeration UsersExenum dibuat.
Buat tabel `user` (` id` int (11) bukan null auto_increment, `name` varchar (20) default null,` Age` int (11) null, `sex` varchar (20) null, kunci primer (` id`)) engine = innodb auto_crement = 9 charset default; `id`)) engine = innodb auto_crement = 9 charset default; UTF8;
Paket com.example.model; import java.io.serializable; pengguna kelas publik mengimplementasikan serializable {@override public string toString () {// todo metode yang dihasilkan otomatis rintisan "pengguna [id =" + id + ", name =" + name + ", usia =" + usia + "]"; } public int getId () {return id; } public void setid (int id) {id = id; } public string getName () {return name; } public void setName (string name) {name = name; } public int getage () {usia kembali; } public void setage (int usia) {usia = usia; } private int id; nama string pribadi; usia int pribadi; Pengguna pribadi seksual; Public UsersExenum getSex () {return sex; } public void setSex (UsersExenum sex) {sex = sex; }} Paket com.example.model; User ENUM Public ENUMExenum {Man, wanita}Di sini kita perlu membandingkan model dengan SQL yang mengoperasikan database. Perbandingan apa yang harus kita gunakan? Maka kita perlu membuat mapper. Ada penambahan, penghapusan, modifikasi dan pencarian di sini.
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.Results;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import com.example.model.*;;public interface UserMapper { @Select("SELECT * FROM user") @Results({ @Result(property = "Sex", column = "sex", javaType = UserSexEnum.class), @Result(property = "Name", column = "name") }) List<User> getAll(); @Select ("SELECT * DARI PENGGUNA WHERE ID = #{ID}") @RESULTS ({@result (properti = "sex", column = "sex", javatype = userexenum.class), @Result (properti = "name", column = "name")}) pengguna getOne (int id); @Insert ("Sisipkan ke Pengguna (Nama, Usia, Seks) Nilai ( #{name}, #{usia}, #{sex})") void insert (pengguna pengguna); @Update ("Perbarui Nama Set Pengguna =#{UserName}, usia =#{usia} di mana id =#{id}") void update (pengguna pengguna); @Delete ("Hapus dari pengguna di mana id =#{id}") void delete (int id);}Mapper dikonfigurasi di atas, jadi bagaimana sistem bisa tahu di mana mapper ditempatkan? Jadi ada anotasi @mapperscan.
Paket com.example.demo; impor org.mybatis.spring.annotation.mapperscan; impor org.springframework.boot.springapplication; Impor org.springframework.boot.Autoconfigure.springbootApplication;@springplicapplication@[email protected];@springbootplication@mapplication@mappapplication@mappapplication {mongbootplication@mappapplication static void main (string [] args) {springApplication.run (demoApplication.class, args); }}
Di sini, UserController dibuat, satu adalah untuk menampilkan semua pengguna, dan yang lainnya adalah menambahkan pengguna baru dan kemudian menampilkan semua pengguna.
Paket com.example.demo; import java.util.list; impor org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.controller; impor org.spramework.ui.model; impor org.springpramation.binde.binde.model; org.springframework.web.bind.annotation.RequestMethod;import com.example.mapper.UserMapper;import com.example.model.User;import com.example.model.UserSexEnum;@Controller@RequestMapping("/user")public class UserController { @Autowired private UserMapper userMapper; @RequestMapping (value = "/alluser.do",method = requestMethod.get) string publik getAllUsers (model model) {daftar <user> user = usermapper.getall (); model.addattribute ("pengguna", pengguna); mengembalikan "Daftar Pengguna"; } @RequestMapping (value = "/insert.do".method = requestMethod.get) public String addUser (model model) {user user = new user (); user.setname ("cuiyw"); user.setage (27); user.setsex (UsersExenum.MAN); usermapper.insert (pengguna); Daftar <User> Users = Usermapper.getAll (); model.addattribute ("pengguna", pengguna); mengembalikan "Daftar Pengguna"; }}Mapper dan model juga diatur di atas. Untuk berinteraksi dengan database, Anda harus mengonfigurasi alamat basis data dan informasi lainnya. Kesalahan dilaporkan ketika berjalan di sini. Pengecualian adalah java.sql.sqlexception: Nilai zona waktu server 'Öð¹ú ± ê × ¼ê ± ¼ä' tidak diakui atau mewakili lebih dari satu zona waktu. Anda harus mengkonfigurasi driver server atau JDBC (melalui properti konfigurasi serverTimEzone) untuk menggunakan nilai zona waktu yang lebih spesifik jika Anda ingin menggunakan dukungan zona waktu. Zona waktu berikutnya diatur dalam MySQL: Set Global Time_Zone = '+8:00';
spring.mvc.view.prefix =/view/spring.mvc.view.suffix = .jspmybatis.type- aliases-package = com.example.modelspring.datasource.datasclassname = com.mysql.cj.jdbc.drivers JDBC: mysql: // localhost: 3306/mybatisspring.datasource.username = rootspring.datasource.password = 123456
7. Buat halaman untuk ditampilkan
Di sini kami masih akan menggunakan JSP untuk menampilkan data sesuai dengan blog sebelumnya.
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com -jsp/jstl/core"%> <! Doctm html html html html "public-doctm-doctm html" public "public" public "wubl" wubl "doctp html" wubl "html" wubl "wubl" wubl "wubl" wubl "wubl" wubl "wubl" wubl "wubl" httpy/wubtl "doctp. Transisi // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "content-type" content = "Text/html; <tr><th>Name</th><th>Age</th><th>Gender</th></tr> <c:forEach items="${users}" var="item"> <tr><td>${item.name}</td><td>${item.age}</td><td>${item.sex}</td></tr> </c: foreach> </able> </body> </html>Di sini, pertama -tama buka http: // localhost: 8080/user/alluser.do di browser, Anda dapat melihat daftar pengguna, dan kemudian memasukkan http: // localhost: 8080/user/insert.do, dan Anda akan melihat bahwa daftar tersebut menampilkan garis data tambahan.
Menggunakan integrasi mybatis berbasis anotasi lebih mudah dan lebih nyaman, tetapi memiliki kelebihan dan kekurangan. Mungkin kurang nyaman untuk beberapa tabel untuk dihubungkan, dan mungkin lebih baik menggunakan konfigurasi berbasis XML.
Oke, di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.