Introduction à Mybatis
MyBatis est un excellent cadre de couche de persistance qui prend en charge les requêtes SQL simples, les procédures stockées et la cartographie avancée. MyBatis élimine les paramètres manuels de presque tous les code et paramètres JDBC et recherchez des ensembles de résultats. MyBatis peut utiliser des XML ou des annotations simples pour la configuration et le mappage d'origine pour mapper les interfaces et les Pojos de Java (Old Java objets) en enregistrements dans la base de données.
Téléchargement MyBatis: https://github.com/mybatis/mybatis-3/releases
Instance mybatis
Opération CRUD sur une table utilisateur:
Tableau utilisateur:
- ------------------------------ STRUCTURE DE TABLE pour `User`-- ---------------------------- Déposez la table si existe` `User`; Créer la table 'User` (` id` int (11) pas null auto_increment, `username` varchar (50) Null,` userage` int (11) Null par défaut, `userAddress` Moteur = innodb auto_increment = 6 Charset par défaut = UTF8; - ------------------------------ Enregistrements de l'utilisateur-- ---------------------------- INSERT IN `` USER` VALEURS ('1', 'Summer', '30', ',', ',' Suzhou ''); INSERTER IN 'INSERS «test1», «29», «un endroit»); insérer dans `` Userv »valeurs ('4', 'lu', '28', 'Some Place'); insérer dans` `User 'les valeurs (' 5 ',' Xiaoxun ',' 27 ',' nanjing '); Créer un fichier de configuration MyBatis XML Configuration.xml <? Xml version = "1.0" Encoding = "utf-8"?> <! Doctype Configuration public "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.DTD" MyBatis Alias Definition -> <tyciases> <tycias alias = "user" type = "com.mybatis.test.user" /> </ typealiases> <environnements default = "Development"> <Environment ID = "Development"> <transactionManager type = "JDBC" /> <dataSource Type = "PoELELED"> <propriété Nom = "Driver" Value = "com.mysql.jdbc.driver" /> <propriété name = "url" value = "jdbc: mysql: //127.0.0.1: 3306 / mybatis" /> <propriété name = "username" value = "root" /> <propriété name = "word" value = "admin" /> </ datasource> Fichier de mappeur, chaque fichier de configuration XML correspond à une interface -> <mappers> <mapper ressource = "com / mybatis / test / user.xml" /> <mappers> </ configuration> Définir le fichier de configuration user.xml des mappeurs utilisateur
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappep Public "- // Mybatis.org//dtd Mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><Mapper namespace = "com.mybatis.test.iuserOperation"> <! - Sélectionner l'instruction -> <select id = "selectUserById" ParameterType = "int" resultType = "user"> SELECT * From `User` Where User.id = # {id} </ select> <! - Le Résultat défini peut résoudre le problème de la colonne de propriétés incomparables et les noms de la colonne de database. <resultMap type = "user" id = "userresultmap"> <id propriété = "id" column = "user_id" /> <résultat propriété = "username" column = "user_usename" /> <résultat propriété = "userage" chronn = "user_userage" /> <résultat propriété = "userraddress" colonnel = "user_useraddress" /> </ resultMap> - <! La liste, notez que la valeur de resultMap pointe vers la définition précédemment définie -> <! - <select id = "selectUsersByName" ParameterType = "String" resultMap = "userresultMap"> SELECT * FROM User Where user.UserName = # {username} </ select " User.Username = # {nom d'utilisateur} </lect> <! - Instruction SQL de sélection qui effectue une opération d'augmentation. L'ID et le paramètre sont les mêmes que le nom et le type de paramètre de la méthode AddUser dans l'interface iUserOperation. UseGeneratedKeys définie sur "Vrai" indique que MyBatis souhaite obtenir la clé primaire générée automatiquement par la base de données; KeyProperty = "ID" Spécifie l'injection de la valeur de clé principale obtenue dans la propriété ID de l'utilisateur -> <insert id = "addUser" ParameterType = "User" useGeneratedKeys = "true" keyproperty = "id"> INSERT IN USER (UserAge, userage, userAddress) </ insert> <update id = "updateUser" ParameterType = "User"> Update User set userName = # {username}, userage = # {userage}, userAddress = # {userAddress} où id = # {id} </ update> <delete id = "Deleserer" ParameterType = "int"> delete id = # {id} </ delete> </ mapper> Le fichier de configuration implémente la relation de mappage entre les interfaces et les instructions SQL. SelectUsersByName utilise deux méthodes pour l'implémenter. COMMENTAIRE est également une implémentation. L'utilisation de résultat peut définir la relation de mappage entre l'attribut et le nom de la colonne de la base de données. La propriété est la propriété de la classe, la colonne est le nom de colonne de la table, ou il peut être un alias pour le nom de la colonne de table!
Définition de la classe utilisateur:
package com.mybatis.test; public class user {private int id; private String username; private int userage; private string userAddress; public int getID () {return id;} public void setid (int id) {this.id = id;} public string getUsername () {return username;} public vide sedunerName (String userName) {this.usname) public; getUserage () {return userage;} public void SetUserage (int userage) {this.Userage = userage;} public String getUserAddress () {return userAddress;} public void seserAddress (String userAddress) {this.UserAddress = userAddress;} @ overdepublic string toString () {return this.User " "+ this.Userrage +" "+ this.UserAddress;}} Définition iUserOperaton:
package com.mybatis.test; import java.util.list; interface publique iUserOperation {public utilisateur selectUserById (int id); public list <serv> selectUsersByName (string userName); public void addeser (utilisateur utilisateur); public void updateSer (utilisateur de l'utilisateur); public void Deleserer (int id);} IUserOperation correspond à l'interface d'opération, au nom de la fonction et au nom de l'identification de l'opération dans le fichier de configuration XML de MyBatis.
Test de classe de test:
package com.mybatis.test; import java.io.reader; import java.util.list; import org.apache.ibatis.io.resources; import org.apache.ibatis.Session.sqlSession; import org.apache.ibatis.Session.sqlsessionfactory; import org.apache.ibatis.Session.SESSESSESS org.apache.ibatis.Session.SqlSessionFactoryBuilder; Test de classe publique {lecteur de lecture statique privé SQLSessionFactory SqlSessionFactory; Reader statique privé (configuration.xml "); SQLSessionFactory = new Build (lecteur);} catch (exception e) {e.printStackTrace ();}} public static sqlSessionFactory getSession () {return sqlSessionfactory;} userOperation = session.getMapper (iUserOperation.class); user user = userOperation.selectUserById (userId); if (user! = null) {System.out.println (user.getId () + ":" + user.getUsername () + ":" + user.getUserAddress ());}} Enfin {session.close ();} GetUserList (String Username) {SqlSession Session = SQLSessionFactory.OpenSession (); Try {iUserOperation userOperation = Session.GetMapper (iUserOperation.Class); List <User> Userse = userOperation.SelectUSERSBYNAME (User. user.getUsername () + ":" + user.getUserAddress ());}} enfin {session.close ();}} / *** après addition, commit * / public void addUser () {user user = new user (); user.setUserAddress ("Place"); user.seSUsername ("test_add"); user.seserage (30); SqlSessionFactory.OpenSession (); Try {iUserOperation userOperation = Session.getMapper (iUserOperation.class); userOperation.AdDuser (User); Session.Commit (); System.out.println ("Ajouter un id utilisateur:" + user.getid ());} Enfin {Session.close ();}} / *** après la modification, la modification * / Publification DOIT être (); COMMANDE * UPDATEUSER () {SQLSESSESSE SESSSION = SQLSESSESSFACTORY.OpenSESSE (); Try {iUserOperation userOperation = Session.getMapper (iUserOperation.class); User user = userOperation.SelectUserById (1); if (User! = NULL) {user.SetUserAdDress ("A New Place "); userOperation.upDateUser (user); session.Commit ();}} enfin {session.close ();}} / *** après la suppression, commit. * * @param id * / public void DeleteUser (int id) ed {SqlSession Session = SqlSessionFactory.Opensession (); Try {iusserrop session.getMapper (iUserOperation.class); userOperation.DeleteUser (id); session.Commit ();} enfin {session.close ();}} public static void main (String [] args) {try {test test = new test (); // test1); test.adDuser (); // test.updateUser (); // test.deleteUser (6);} catch (exception e) {System.out.println (e.getMessage ());}}}Ce qui précède est l'exemple de code de l'implémentation MyBatis de l'addition, de la suppression, de la modification et de la requête (CRUD) présentés par l'éditeur. 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!