Préparation
Pour créer un nouveau projet Java ou un projet Java WWEB, vous devez importer les packages suivants.
Le travail de base est terminé, puis nous commencerons à atteindre le sujet.
Créer une nouvelle classe d'entité
Créez une nouvelle classe d'entité correspondant à la table de base de données
package com.edu.hpu.domain; / ** * @Author Administrator * Classe d'entité correspondant à la table utilisateur * / classe publique User {// Les attributs de la classe d'entité et les noms de champ de la table correspondent à IND privé ID; nom de chaîne privé; Âge privé; // résumer les attributs public int getID () {return id; } public void setid (int id) {this.id = id; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public int getage () {return âge; } public void Setage (int Age) {this.age = age; } // Ajouter la méthode de toString @Override public String toString () {return "utilisateur [id =" + id + ", name =" + name + ", age =" + age + "]"; }}Ajouter une classe d'outils MyBatis
La classe d'outils ajoutée comme indiqué ci-dessous,
Package com.edu.hpu.util; import java.io.inputStream; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; classe publique MyBatisUtil {/ ** * Get SqlSessionFactory * @return sqlSessionFactory * / public static sqlSessionFactory GetSQLSessionFactory () {String Resource = "conf.xml"; // Cliquez sur le fichier de configuration InputStream est = MyBatisUtil); SQLSessionFactory Factory = new SqlSessionFactoryBuilder (). Build (IS); Retour Factory; } / ** * Get SqlSession * @return sqlSession * / public static sqlSession getSQLSession () {return getSQLSessionFactory (). OpenSession (); } / ** * Obtenir SQLSession * @param IsautoCommit * true signifie que l'objet SQLSession créé soumettra automatiquement la transaction après l'exécution de SQL * FAUX signifie que l'objet SQLSession créé ne soumetra pas automatiquement la transaction après l'exécution de SQL. À l'heure actuelle, nous devons appeler SQLSession.Commit () manuellement pour soumettre la transaction * @return sqlSession * / public static sqlSession getSQLSession (boolean isautoCommit) {return getSQSessionFactory (). OpenSession (IsautoCommit); }}Il existe deux méthodes pour ajouter, supprimer, rechercher et modifier les données à l'aide de MyBatis, à savoir le fonctionnement du fichier de configuration et le fonctionnement d'annotation.
Fonctionnement via des fichiers de configuration
Le fichier de configuration de la base de données est le suivant, configurer les informations de base de données,
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Configuration public "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3config.dtd"> <configuration> <Environments par défaut = "Development"> <ovelong <TransactionManager Type = "JDBC" /> <! - Configurez les informations de connexion de la base de données -> <DataSource Type = "Poolled"> <propriété name = "Driver" value = "com.mysql.jdbc.driver" /> <propriété name = "url" Value = "JDBC: mysql: // localhost: 3306 / test? useunicode = true & worseencoding = utf-8 & zerodatetimebehavior = converttonull" /> <propriété name = "username" value = "root" /> <propriété = "mot de passe" value = "admin" /> </ datasource> </viron Fichier userMapper.xml, userMapper.xml est situé dans le package com.edu.hpu.mapping, donc la ressource est écrite comme com / edu / hpu / mapping / userMapper.xml -> <mapper ressource = "com / edu / hpu / mapping / userMapper.xml" /> <!
Configurez le fichier d'instruction de la base de données de l'opération comme indiqué ci-dessous,
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappeur public "- // Mybatis.org//dtd Mappeur 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <maxim <! - Écrivez des instructions SQL Query dans la balise SELECT, définissez l'attribut ID de la balise SELECT à GetUser. La valeur d'attribut ID doit être unique. L'attribut de paramètre ne peut pas être réutilisé pour indiquer le type de paramètre utilisé dans la requête. L'attribut ResultType indique le type de jeu de résultats renvoyé par le requête resultType = "com.edu.hpu.domain.user" signifie que le résultat de la requête est encapsulé dans un objet de la classe utilisateur et revient à la classe utilisateur, qui est la classe d'entité correspondant à la table des utilisateurs -> <! - Obtenez un objet utilisateur basé sur l'ID Query -> <Select Id = "GetUser" Paramètre = "Int" Int " resultType = "com.edu.hpu.domain.user"> sélectionner * dans les utilisateurs où id = # {id} </lect> <! - Créer un utilisateur (create) -> <insert id = "adduser" ParameterType = "cOM.edu.hpu.domain.user"> insert dans les utilisateurs (nom, Âge) (# {name}, # # # # # {}) </ INSERTe> <! - (Supprimer) -> <delete id = "DeleteUser" ParameterType = "int"> Supprimer des utilisateurs où id = # {id} </ delete> <! - Modifier l'utilisateur (Update) -> <update id = "updateSer" ParameterType = "com.edu.hpu.domain.user"> Update Userst Set Name = # {name}, Age = # # {#} </fatedate> <! - Recherchez tous les utilisateurs -> <select id = "getAllUsers" resultType = "com.edu.hpu.domain.user"> Sélectionner * dans les utilisateurs </lect> </caper> L'ajout de la base de données, la suppression et la révision via des fichiers de configuration ont été essentiellement terminés. Ensuite, la classe de test est donnée.
Les tests peuvent être effectués comme indiqué ci-dessous,
package com.edu.hpu.test; Importer java.util.list; import com.edu.hpu.domain.user; import com.edu.hpu.util.mybatisutil; import org.junit.test; import org.apache.ibatis.session.sqlSession; classe publique test2 {@Test public void testAdd () {// sqlSession sqlSession = mybatisUtil.getsqlSession (false); SqlSession SqlSession = MybatisUtil.getsqlSession (true); / ** * Map String d'identification SQL, * com.edu.hpu.mapping.UserMapper est la valeur de l'attribut d'espace de noms de la balise de mappeur dans le fichier userMapper.xml, * AddUser est la valeur d'attribut ID de la balise d'insertion * / String Status = "com.edu.hpu.mapping.usermapper.adduser"; // map SQL Identification String utilisateur utilisateur = new user (); user.setName ("New User xiaoHuang"); user.setAGE (20); // Effectuez l'opération d'insertion int retresult = sqlSession.insert (instruction, utilisateur); // Soumettre manuellement les transactions // sqlSession.Commit (); // Après avoir exécuté SQL à l'aide de SQLSession SqlSession.Close (); System.out.println (retresult); } @Test public void TestupDate () {SqlSession SqlSession = MybatisUtil.getsqlSession (true); / ** * MAP SQL Identification String, * com.edu.hpu.mapping.usermapper est la valeur de l'attribut d'espace de noms de la balise de mappeur dans le fichier userMapper.xml, * UpdateUser est la valeur d'attribut ID de la balise de mise à jour. Le SQL à exécuter peut être trouvé via la valeur d'attribut ID de la balise de mise à jour * / string instruction = "com.edu.hpu.mapping.usermapper.updateuser"; // mapping sql id string user = new user (); user.setid (3); user.setName ("Hello World"); user.setage (25); // Exécuter l'opération de modification int retresult = sqlSession.update (instruction, utilisateur); // Après avoir exécuté SQL avec SQLSession, vous devez fermer SQLSession sqlSession.close (); System.out.println (retresult); } @Test public void testdelete () {sqlSession sqlSession = mybatisUtil.getsqlSession (true); / ** * Map String d'identification SQL, * com.edu.hpu.mapping.UserMapper est la valeur de l'attribut d'espace de noms de la balise de mappeur dans le fichier userMapper.xml, * DeleteUser est la valeur d'attribut d'ID de la balise de suppression * / String Statut = "com.edu.hpu.mapping.usermapper.deleteUser"; // mappage de la chaîne d'identification du SQL // Effectuez une opération de suppression int redesult = sqlSession.Delete (instruction, 4); // Après avoir exécuté SQL à l'aide de SQLSession SqlSession.Close (); System.out.println (retresult); } @Test public void testGetall () {sqlSession sqlSession = mybatisUtil.getsqlSession (); / ** * Mappage de la chaîne d'identification de SQL, * com.edu.hpu.mapping.usermapper est la valeur de l'attribut d'espace de noms de la balise de mappeur dans le fichier userMapper.xml. * GetAlUsers est la valeur d'attribut ID de la balise de sélection. Le SQL à exécuter peut être trouvé via la valeur d'attribut ID de la balise SELECT * / String Statement = "com.edu.hpu.mapping.usermapper.getallusers"; // mappant le SQL Identity String // Exécuter l'opération de requête et encapsure automatiquement le résultat de la question <user>; // Après avoir exécuté SQL avec SQLSession, vous devez fermer SQLSession sqlSession.close (); System.out.println (LSTUSERS); }}Fonctionnement par annotations
Le fonctionnement à travers les annotations nécessite l'écriture d'une interface, mais il n'a pas besoin d'être implémenté, comme indiqué ci-dessous.
package com.edu.hpu.mapping; Importer java.util.list; import com.edu.hpu.domain.user; import org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.update; / ** * @author gacl * Définissez l'interface de la mappage SQL, spécifiez le SQL à exécuter à l'aide d'annotations * / interface publique UserMapper_11 {// Utilisez l'annotation @insert pour spécifier les valeurs SQL par la méthode ADD @insert (insert dans les utilisateurs (nom, # # {name}, # # # # # # {ère} ") public int (user); user); // Utilisez l'annotation @delete pour spécifier le SQL à exécuter par la méthode DeleteByid @Delete ("Supprimer des utilisateurs où id = # {id}") public int DeleteById (int id); // Utilisez l'annotation @update pour spécifier le SQL à exécuter par la méthode de mise à jour @upDate ("Update Users Set Name = # {name}, Age = # {Age} WHERE ID = # {id}") public int update (utilisateur utilisateur); // Utilisez l'annotation @Select pour spécifier le SQL pour exécuter la méthode GetById @Select ("SELECT * dans les utilisateurs où id = # {id}") utilisateur public getById (int id); // Utilisez l'annotation @Select pour spécifier le SQL pour exécuter la méthode getAll @Select ("SELECT * FROM USERS") Public List <Derser> getall (); }En même temps, vous devez ajouter l'interface écrite au fichier de configuration de la base de données et ajouter l'instruction suivante dans conf.xml.
<mapper />
OK, il a été achevé, voici la classe de test qui peut être testée.
package com.edu.hpu.test; Importer java.util.list; import com.edu.hpu.domain.user; import com.edu.hpu.mapping.usermapper_11; import com.edu.hpu.util.mybatisutil; import org.apache.ibatis.session.sqlSession; import org.junit.test; / ** * @Author Administrator * Test Annotation * / public class test3 {@test public void testAdd () {SqlSession SqlSession = MyBatisUtil.getsqlSession (true); // Obtenez l'objet de classe d'implémentation de l'interface UserMapper. L'objet de classe d'implémentation de l'interface UserMapper est construit dynamiquement par sqlSession.getMapper (userMapper.class). UserMapper_11 MAPPER = SQLSESSESS.GetMapper (userMapper_11.class); Utilisateur utilisateur = nouveau utilisateur (); user.setName ("La grande sagesse est stupide"); user.setAGE (20); int add = mapper.add (utilisateur); // SQLSession doit être fermé après avoir exécuté SQL avec SQLSession sqlSession.close (); System.out.println (ADD); } @Test public void TestupDate () {SqlSession SqlSession = MybatisUtil.getsqlSession (true); // Obtenez l'objet de classe d'implémentation de l'interface UserMapper. L'objet de classe d'implémentation de l'interface UserMapper est construit dynamiquement par SQLSession.getMapper (userMapper.class) UserMapper_11 Mappeur = SQLSession.getMapper (UserMapper_11.class); Utilisateur utilisateur = nouveau utilisateur (); user.setid (3); user.setName ("Big Sound and Sound"); user.setage (26); // Exécuter l'opération de modification int retReResult = mAper.update (utilisateur); // Après avoir exécuté SQL à l'aide de SQLSession, vous devez fermer SQLSession sqlSession.close (); System.out.println (retresult); } @Test public void testdelete () {sqlSession sqlSession = mybatisUtil.getsqlSession (true); // Obtenez l'objet de classe d'implémentation de l'interface UserMapper, et l'objet de classe d'implémentation de l'interface UserMapper est construit dynamiquement par SQLSession.getMapper (userMapper.class) UserMapper_11 Mappel = sqlSession.getMapper (userperper_11.class); // Exécuter l'opération Supprimer int retReResult = mAper.DeleteById (7); // Après avoir utilisé SQLSession pour exécuter SQL, vous devez fermer SQLSession sqlSession.close (); System.out.println (retresult); } @Test public void testGetUser () {sqlSession sqlSession = mybatisUtil.getsqlSession (); // Obtenez l'objet de classe d'implémentation de l'interface UserMapper. L'objet de classe d'implémentation de l'interface UserMapperi est construit dynamiquement par SqlSession.getMapper (userMapper.class) UserMapper_11 Mappen = SqlSession.GetMapper (UserMapper_11.class); // Exécuter le fonctionnement de la requête et encapsuler automatiquement le résultat de la requête dans l'utilisateur utilisateur utilisateur = mapper.getById (1); // Après avoir utilisé SQLSession pour exécuter SQL, vous devez fermer SQLSession sqlSession.close (); System.out.println (utilisateur); } @Test public void testGetall () {sqlSession sqlSession = mybatisUtil.getsqlSession (); // Obtenez l'objet de classe d'implémentation de l'interface UserMapper. L'objet de classe d'implémentation de l'interface UserMapper est construit dynamiquement par SQLSession.getMapper (userMapper.class) UserMapper_11 Mappeur = SQLSession.getMapper (UserMapper_11.class); // Exécuter les opérations de requête et encapsuler automatiquement les résultats de la requête dans la liste <utilisateur> return list <serv> lStusrs = mapper.getall (); // Après avoir utilisé SQLSession Execution SQL, vous devez fermer SQLSession sqlSession.close (); System.out.println (LSTUSERS); }}Ce qui précède est une explication détaillée de la mise en œuvre de MyBatis de l'addition, de la suppression et de la révision des données que l'éditeur vous a présenté. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!