Introduction à Mybatis:
MyBatis est un projet open source d'Apache. En 2010, ce projet a été déplacé de la Fondation du logiciel Apache à Google Code et a été renommé Mybatis. Migré vers Github en novembre 2013.
MyBatis est un excellent cadre de couche de persistance qui prend en charge SQL personnalisé, les procédures stockées et la cartographie avancée. MyBatis évite presque tout le code JDBC et la définition manuelle des paramètres et l'obtention des ensembles de résultats. MyBatis peut utiliser des XML ou des annotations simples pour configurer et cartographier les informations natives, le mappage des interfaces et Java Pojos (Old Java objets) en enregistrements dans la base de données.
1. La fonction de Mybatis:
Autrement dit, MyBatis implémente la couche DAO, qui configure SQL via des fichiers et des cartes XML vers PO.
2. Packages de devis qui doivent être préparés
Mybatis-3.2.8.jar: le framework Mybatis est utilisé
ojdbc6.jar: connexion de la base de données
Configuration de l'environnement MyBatis (voici une configuration distincte de MyBatis):
Premièrement: téléchargement et importation du package de pot mybatis
L'adresse de téléchargement de la v3.4.5 est:
http://xiazai.vevb.com/201712/yuanma/mybatis-3.4.5.rar
Si vous ne souhaitez pas utiliser la version 3.4.5, mais si vous oubliez l'adresse, nous pouvons rechercher directement sur le site officiel de GitHub.com: Mybatis
Les résultats de la recherche sont présentés sur la figure:
Cliquez sur Télécharger le dernier pour le moment, puis sélectionnez la version que vous souhaitez télécharger.
Décompressez le package compressé téléchargé et importez tous les MyBatis-3.4.5.jar et le pot dans le dossier lib dans Eclipse. Bien sûr, pour le moment, vous devez également importer le package JAR de MySQL Driver dans MySQL-Connector-Java-5.1.44.Jar.
Parce que nous n'avons pas utilisé Maven ici, la configuration suivante n'est pas nécessaire, car nous avons importé manuellement tous les pots:
<dependency> <proupId> org.mybatis </rompuprid> <letifactive> Mybatis </ artifactid> <version> 3.4.5 </-version> </pedigence>
2. Écriture de fichiers de configuration
Créez un dossier source dans votre propre projet, stockez votre propre document de configuration et créez sqlmappersconfig.xml et copiez la configuration suivante (la configuration officielle fournie par l'officiel, modifiez la configuration officielle par la vôtre):
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype ConfigurationPublic "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3config.dtd"> <configuration> <transactionManager Type = "JDBC" /> <DataSource Type = "Poolled"> <propriété name = "Driver" value = "$ {Driver}" /> <propriété name = "URL" value = "$ {url}" /> propriété name = "username" value = "$ {mot de passe}" </ Environment> </ Environments> <Mappers> <Mapper Resource = "Org / Mybatis / Example / BlogMapper.xml" /> </mappers> </FIGIGRAGE>La configuration dans sqlconnect.properties est la suivante:
SQLDRIVER: com.mysql.jbdc.driversqlurl: mysql: jbdc: //172.20.60.2/spectergk? useunicode = true & caractèrescoding = utf8sqlusername: TestSQLUserPwd: 111111
Ok jusqu'à présent, nous avons terminé la configuration de base de la configuration qui doit être configurée, mais ce n'est que la configuration de la configuration, code de test:
public void functionTest () {//system.out.println("Start Mybatis "); InputStream inputStream = null; try {<br data-filtory = "filtory"> inputStream = Resources.getResourceAsStream ("sqlmapconfig.xml"); } catch (ioException e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); } / * * Créer une usine * / sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (inputStream); / * * Open SSION * / SqlSession SqlSession = SqlSessionFactory.OpenSession (); System.out.println (SQLSession); sqlSession.close (); essayez {inputStream.close (); } catch (ioException e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); }}À l'heure actuelle, l'impression est une valeur qui prouve que nous l'avons configurée avec succès, et nous pouvons définir le mapper pour le reste.
Deuxièmement: la création et l'utilisation de mappeurs, car le mappeur MyBatis peut utiliser un proxy dynamique, et nous utilisons directement le proxy dynamique ici:
Créer dans le package Pojo:
User.java
Créer un package de mappeurs:
UserMapper.java
Créer dans le même répertoire que sqlmappersconfig.xml:
User.xml
Et configurez le code suivant dans sqlmappersconfig.xml:
<! - Ce qui suit est alias le nom du package de com.spectère ressource = "user.xml" /> </ mappers>
Implémentez l'addition, la suppression, la modification et la recherche simples de la base de données. La mise en œuvre spécifique est la suivante:
User.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappen public "- // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- L'accumulation a Implémentation de Dynamic Proxy -> <MAPPER NAMESSPACE = "com.spectergk.mybatis.mappers.usermapper"> <! - La valeur de retour configurée ici est l'utilisateur, c'est parce que son renommée a été configurée dans SQLMappersConfig.xml -> <! - Requêtez la valeur de retour de l'utilisateur selon l'ID utilisé. La valeur réalisée par l'utilisateur est ParamètreType -> <select id = "selectUserById" resultType = "user" ParameterType = "String"> Sélectionner * dans l'utilisateur où uid = # {v} </ select> <! - Fuzzy Query basé sur le nom d'utilisateur de l'utilisateur-> <Select Id = "SELECTSERSBYUSERAM "%" # {v} "%"; </lect> <! - Insérez des données dans la base de données -> <insérer id = "insertOneuser" ParameterType = "User"> INSERT IN USER (uid, username, realname, mobile, mainpid, sexe) (# {uid}, # {username}, # {realname}, # {mobile}, # # {MainPid}, #}); </ssert> <! - L'UID généré automatiquement qui insère des données et renvoie -> <insert id = "insertOneUserGet" ParameterType = "user"> <SelectKey KeyProperty = "uid" keyColumn = "uid" resultType = "String" Ordre = "After"> SELECT Last_insert_id () </ SelectKey> Ins " user (nom d'utilisateur, realName, mobile, mainpid, sex) valeurs (# {nom d'utilisateur}, # {realName}, # {mobile}, # {mainpid}, # {sexe}); </ insert> <! - Insérer dans le formulaire de liste -> <insert id = "insetUsers"> Insérer dans l'utilisateur (uid, nom d'utilisateur, realName, mobile, mainpid, sexe) <ForEach Collection = "list" item = "item" séparateur = ","> (# {item.uid}, # {item.username}, # {item.realname}, # {item.mobile}, # {item.mainpid}, # {item.sex}) </ForEach> </ insert> <! - insert en arrié Utilisateur (uid, nom d'utilisateur, RealName, Mobile, MainPid, Sex) Valeurs <Foreach Collection = "Array" Item = "Item" séparateur = ","> (# {item.uid}, # {item.username}, # {item.realname}, # {item.mobile}, # {item.MainPid}, # # # #) </serser> <! - Update User -> <update id = "updateSer" ParameterType = "User"> Update User set username = # {username} où uid = # {uid} </ update> <! - Delete User -> <Delete ID = "DeleteonEser" ParameterType = "string"> Delete de l'utilisateur où uid = # # {V} <! id = "Deletemoreusers"> Supprimer de l'utilisateur où uid dans (<foreach collection = "list" item = "item" séparateur = ","> # {item} </foreach>) </preaking> </naupper>Parce qu'il se charge dynamiquement, écrivez simplement l'interface ici:
package com.spectergk.mybatis.mappers; import java.util.list; importer com.spectergk.mybatis.pojo.user; interface publique UserPapper {/ * * requête basée sur l'id utilisateur * / public user SelectUserById (String id); / * * Fuzzy Query basé sur le nom d'utilisateur * / public List <Derser> selectUsersByUserName (String Username); / * * Insérer un utilisateur * / public void insertOneuser (utilisateur utilisateur); / * * Insérez un utilisateur et renvoyez l'ID de l'utilisateur inséré * / public void insertOneUserGid (utilisateur utilisateur); / * * Insérer plusieurs utilisateurs * / public void insertUsers (list <utilisateur> utilisateurs); / * * Insérez plusieurs utilisateurs pour transmettre Array * / public void insertUserArray (utilisateur utilisateur []); / * * UpdateUser Update * / public void UpdateUser (utilisateur utilisateur); / * * Supprimer un * / public void DeleteOneUser (String UID); / * * Deletemoreusers Supprimer plusieurs * / public void Deletemoreusers (list <string> uids);}En raison du code de test, seul le code de test flou est écrit ici:
// requête publique void fuzzysearch () {System.out.println ("start mybatis"); InputStream inputStream = null; try {inputStream = Resources.getResourCeasStream ("sqlmapconfig.xml"); } catch (ioException e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); } / * * Créer une usine * / this.sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (InputStream); / * * Open SSION * / SqlSession SqlSession = this.sqlSessionFactory.OpenSession (); System.out.println (SQLSession); UserMapper userMapper = sqlSession.getMapper (userMapper.class); List <ser utilisateur> utilisateur = userMapper.SelectUrsyUsername ("liu"); pour (utilisateur utilisateur: utilisateurs) {System.out.println (utilisateur); } sqlSession.close (); }Résumer
Ce qui précède est l'exemple de code pour la construction et l'utilisation de l'environnement MyBatis qui vous est présenté 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!