Qu'est-ce que 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:
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Moteur = innodb auto_increment = 6 charse par défaut = utf8; - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Place '); insérer dans `` User` Values (' 4 ',' Lu ',' 28 ',' Some Place '); Insérer dans `` User' Values ('5', 'Xiaoxun', '27', 'Nanjing');Créer un fichier de configuration MyBatis XML Configuration.xml dans le répertoire SRC
<? 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"> <configuration> <! alias = "user" type = "com.mybatis.test.user" /> </ typealiases> <environnements default = "Development"> <environnement id = "Development"> <transactionmanager type = "jdbc" /> <datasource type = "poolled"> <propriété name = "driver" value = "com.mysql.jdbc.Driver Value = "JDBC: mysql: //127.0.0.1: 3306 / mybatis" /> <propriété name = "username" value = "root" /> <propriété name = "mot de passe" value = "admin" /> </ datasource> </ environnement> </ environnements> <! - MyBatis Mapper, chaque fichier xml correspond à un fichier de configuration de xml correspond à une interface -> <mAppers> ressource = "com / mybatis / test / user.xml" /> </mappers> </fonfi configuration>
Définir le fichier de configuration user.xml des mappeurs utilisateur
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappeur public "- // Mybatis.org//dtd Mappeur 3.0 // en" "http://mybatis.org/dtd/mybatis.teroSer.> nom <! - Sélectionnez Instruction -> <SELECT ID = "SELECTUSERBYID" ParameterType = "int" resultType = "User"> SELECT * From `User` Where User.id = # {id} </lect> <! - Le résultat défini peut résoudre le problème des noms de propriété incohérentes et des noms de la base de la base de données" propriété = "id" column = "user_id" /> <résultat propriété = "username" column = "user_usename" /> <résultat propriété = "userage" chronn = "user_useage" /> <résultat propriété = "userAddress" chronn = "user_useraddress" /> </ resultmap> -> <! - Renvoie l'instruction sélectionnée de la liste, notez que la valeur de Résultat pointe précédemment - [! - Renvoie l'instruction SELEC <select id = "selectUsersByName" ParameterType = "String" resultMap = "userresultMap"> SELECT * à partir de l'utilisateur où user.UserName = # {username} </ select> -> <select id = "selectUserByName" ParameterType = "string" resultType = "user> story where user.UserAm = # # # {username} 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é primaire obtenue dans la propriété ID de l'utilisateur -> <insert id = "addUser" ParameterType = "User" useGeneratedKeys = "true" keyproperty = "id"> INSERT IN USER (USERNAME, USERAGE, USERADDRESS) VALEURS (# {user-nom <update id = "UpdateUser" ParameterType = "User"> Update User set userName = # {username}, userage = # {userage}, userAddress = # {userAddress} où id = # {id} </fatedate> <delete id = "DeleteUser" paramètre </ 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; Nom d'utilisateur de chaîne privée; Userage int privé; chaîne privée UserAddress; public int getID () {return id; } public void setid (int id) {this.id = id; } public String getUserName () {return username; } public void setUsername (String username) {this.userName = username; } public int getUserage () {return utilisateur; } public void setUserage (int userage) {this.Userage = userage; } public String getUserAddress () {return userAddress; } public void SetUserAddress (String userAddress) {this.UserAddress = userAddress; } @Override public String toString () {return this.username + "" + this.Userage + "" + this.userAddress; }}Définition iUserOperaton:
package com.mybatis.test; import java.util.list; interface publique iUserOperation {public utilisateur selectUserById (int id); public list <ser utilisateur> selectUsersByName (String Username); public void addUser (utilisateur utilisateur); public void UpdateUser (utilisateur utilisateur); public void DeleteUser (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 {private statique sqlSessionFactory SqlSessionFactory; lecteur de lecteur statique privé; static {try {reader = Resources.getResourceAsReader ("Configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (lecteur); } catch (exception e) {e.printStackTrace (); }} public static sqlSessionFactory getSession () {return sqlSessionFactory; } public void getUserById (int userId) {sqlSession session = sqlSessionFactory.OpenSession (); essayez {iUserOperation 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 (); }} public void getUserList (String Username) {SqlSession Session = SqlSessionFactory.OpenSession (); essayez {iUserOperation userOperation = session .getMapper (iUserOperation.class); List <ser utilisateur> utilisateur = userOperation.SelectUrsByName (nom d'utilisateur); pour (utilisateur utilisateur: utilisateurs) {System.out.println (user.getId () + ":" + user.getUsername () + ":" + user.getUserAddress ()); }} enfin {session.close (); }} / ** * engager après addition * / public void addUser () {user user = new user (); user.SetUserAddress ("Place"); user.setUsername ("test_add"); User.SetUserage (30); SQLSESSESSE SESSION = SQLSESSESSEFACTORY.OpenSESE (); essayez {iUserOperation userOperation = session .getMapper (iUserOperation.class); userOperation.AdDuser (utilisateur); session.Commit (); System.out.println ("Ajouter un ID utilisateur:" + user.getId ()); } enfin {session.close (); }} / ** * commit * / public void UpdateUser () {SqlSession Session = SqlSessionFactory.OpenSession (); essayez {iUserOperation userOperation = session .getMapper (iUserOperation.class); User user = userOperation.SelectUserById (1); if (user! = null) {user.SetUserAddress ("un nouvel endroit"); useroperation.updateUser (utilisateur); session.Commit (); }} enfin {session.close (); }} / ** * engager après la suppression. * * @param id * / public void DeleteUser (int id) {sqlSession session = sqlSessionFactory.OpenSession (); essayez {iUserOperation userOperation = session .getMapper (iUserOperation.class); userOperation.DeleteUser (ID); session.Commit (); } enfin {session.close (); }} public static void main (string [] args) {try {test test = new test (); // test.getUserById (1); // test.getUserList ("test1"); // test.adDuser (); // test.updateUser (); // test.deleteUser (6); } catch (exception e) {System.out.println (e.getMessage ()); }}} Téléchargement de code: mybaitSimpledemo_jb51.rar
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.