Préface
Aujourd'hui, apprenons le Springboot à intégrer Mybatis. Il existe généralement deux façons d'intégrer Mybatis. L'un est basé sur l'annotation et l'autre est basé sur la configuration XML. Aujourd'hui, découvrons d'abord l'intégration MyBatis basée sur l'annotation. Je ne dirai pas beaucoup ci-dessous, jetons un coup d'œil à l'introduction détaillée
Parce que c'est MyBatis, il doit être lié à MyBatis, et j'utilise MySQL, il doit donc également présenter des liens avec MySQL.
<! - https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -> <dependency> <proupId> org.mybatis.spring.boot </proupId> <Artifactid> Mybatis-Spring-Boot-Starter </ artifactId> <version> 1.3.2 </ version> </ Dependency> <! - https://mvnrepository.com/artifact/mysql/mysql-connector-java -> <dependency> <proupId> mysql </prouprid> <aRtifactid> MySQL-Connector-Java </ ArtifActid> <Dersion> 8.0.11 <11
Un modèle d'utilisateur est créé ici, ce qui est pratique pour la comparaison avec la table de base de données. Ici, une base de données nommée MyBatis est créée dans MySQL, et une table utilisateur est créée. En même temps, une classe d'énumération UsersexEnum est créée.
Créer un tableau `User` (` id` int (11) pas null auto_increment, `name` varchar (20) par défaut null,` `Â 'int (11) par défaut null,` sexe` varchar (20) par défaut null, clé primaire (`id`)) moteur = innodb auto_incment = 9 Défaute-tas de défaut = utf8;
package com.example.model; import java.io.serializable; public class utilisateur implémente serializable {@Override public String toString () {// todo méthode générée automatiquement Stub "user [id =" + id + ", name =" + name + ", age =" + age + "]"; } public int getID () {return id; } public void setid (int id) {id = id; } public String getName () {Nom de retour; } public void setName (String name) {name = name; } public int getage () {return âge; } public void Setage (int Age) {Âge = Age; } private int id; nom de chaîne privé; Âge privé; utilisateurs privés Utilisateurs publicsExEnum getSEX () {return sexe; } public void SetSex (usersExenum sexe) {sexe = sexe; }} package com.example.model; public Enum UsersExenum {man, femme}Ici, nous devons comparer le modèle avec le SQL qui exploite la base de données. Quelle comparaison devrions-nous utiliser? Ensuite, nous devons créer un mappeur. Il y a des ajouts, des suppressions, des modifications et des recherches ici.
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.select; import; org.apache.ibatis.annotations.update; import com.example.model. * ;; interface publique Userperper {@Select ("select * from user") @Results ({@Result (propriété = "sexe", chronn = "sex", javatype = userexenum.class), @Result (propriété = "name", column = "name")}); @Select ("SELECT * FROM User Where id = # {id}") @Results ({@Result (propriété = "Sex", Column = "Sex", javatype = userexEnum.class), @Result (propriété = "name", colonnes = "name")}) User GetOne (int id); @Insert ("INSERT IN USER (NAME, AGE, SEX) VALUES (# {NAME}, # {Age}, # {Sex})") void INSERT (utilisateur utilisateur); @UpDate ("Update User set name = # {username}, Âge = # {age} où id = # {id}") void Update (utilisateur utilisateur); @Delete ("Supprimer de l'utilisateur où id = # {id}") void delete (int id);}Le mappeur est configuré ci-dessus, alors comment le système peut-il savoir où est placé le mappeur? Il y a donc une annotation @Mapperscan.
package com.example.demo; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootapplication ") casse de bille {public static void main (String [] args) {SpringApplication.run (DemoApplication.class, args); }}Ici, UserController est créé, l'un consiste à afficher tous les utilisateurs, et l'autre consiste à ajouter un nouvel utilisateur, puis à afficher tous les utilisateurs.
package com.example.demo; import java.util.list; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterreotype.Controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.reQuage; org.springframework.web.bind.annotation.requestMethod; import com.example.mapper.usermapper; import com.example.model.user; import com.example.model.usersexenum; @ contrôleur @ requestmapping ("/ user") public class userstoller {@autowired private usermapper usermapper usermapper; @RequestMapping (value = "/AllUser.Do",Method = requestMethod.get) public String getAllUsers (modèle modèle) {list <user> users = userMapper.getall (); Model.AddAttribute ("utilisateurs", utilisateurs); return "UserList"; } @Requestmapping (value = "/insert.do",method = requestMethod.get) public string addUser (modèle modèle) {user user = new user (); user.setName ("CUIYW"); user.setage (27); user.setSex (UsersExenum.man); userMapper.insert (utilisateur); List <utilisateur> utilisateurs = userMapper.getall (); Model.AddAttribute ("utilisateurs", utilisateurs); return "UserList"; }}Le mappeur et le modèle sont également définis ci-dessus. Pour interagir avec la base de données, vous devez configurer l'adresse de la base de données et d'autres informations. Une erreur a été signalée lors de l'exécution ici. L'exception inscrite est Java.Sql.Sqlexception: la valeur du fuseau horaire du serveur 'Öð´ m'enG ± dési × ¼ dé ¼ä' n'est pas reconnue ou représente plus d'un fuseau horaire. Vous devez configurer le serveur ou le pilote JDBC (via la propriété de configuration servertimeZone) pour utiliser une valeur de fuseau horaire plus spécifique si vous souhaitez utiliser la prise en charge du fuseau horaire. Le prochain horaire est défini dans MySQL: Set Global Time_zone = '+ 8:00';
printemps.mvc.view.prefix = / View / printemps.mvc.view.suffix = .jspmybatis.type-aliases-package = com.example.modelspring.datasource.driverclassname = com.mysql.cj.jdbc.drivertring.datasource.url = JDBC: mysql: // localhost: 3306 / mybatisspring.datasource.username = rootspring.datasource.password = 123456
7. Créez une page à afficher
Ici, nous utiliserons toujours JSP pour afficher les données selon le blog précédent.
<% @ Page Language = "Java" ContentType = "Text / Html; Charset = UTF-8" Pageencoding = "UTF-8"%> <% @ taglib Prefix = "C" URI = "http://java.sun.com/jsp/jstl/Core"%> <! Doctype html public "- // w3c // dtd htm 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "contenu-type" contenu = "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> </ table> </ body> </html>Ici, ouvrez d'abord http: // localhost: 8080 / user / alluser.do dans le navigateur, vous pouvez voir la liste d'utilisateurs, puis entrez http: // localhost: 8080 / user / insert.do, et vous verrez que la liste affiche une ligne de données supplémentaire.
L'utilisation de l'intégration basée sur l'annotation de MyBatis est plus facile et plus pratique, mais elle présente à la fois des avantages et des inconvénients. Il peut être moins pratique pour plusieurs tables à connecter, et il peut être préférable d'utiliser la configuration basée sur XML.
D'accord, ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.