Écrivez une instance simple de MyBatis insérant des données
1. La signification de la table de base de données Bâtiment Dob = date de naissance
Créer des étudiants de table (Numéro Stud_ID Clé primaire, nom Varchar2 (20), e-mail VARCHAR2 (20), DOB Date);
Le tableau créé dans la base de données Oracle signifie que la création est réussie. Si le nom a été utilisé, vous pouvez le supprimer avant de créer la table: Drop Table Students; ou cascade supprimer les étudiants de table de drop-table contraintes en cascade; Et puis recréez-le à nouveau.
2 Créer un nouveau projet
2.1 Créez le package et la classe correspondants, où l'élève est l'objet que nous voulons insérer. Étant donné que le type de données correspond aux valeurs de la base de données, nous pouvons insérer l'ensemble de l'objet. Par conséquent, nous utilisons la classe POJO pour encapsuler l'objet.
package com.mybatis.pojo; Importer java.util.date; Étudiant de classe publique {Private Integer Studid; nom de chaîne privé; e-mail de chaîne privée; Date privée DOB; public Student () {} // Notez le constructeur sans paramètres public étudiant (entier studide, nom de chaîne, courriel de chaîne, date dob) {this.studid = studid; this.name = name; this.email = e-mail; this.dob = dob; } public entier getStudid () {return studid; } public void setStudid (entier studid) {this.studid = studid; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public String getEmail () {return e-mail; } public void setEmail (chaîne e-mail) {this.email = e-mail; } Public Date getDOB () {return dob; } public void setDOB (date dob) {this.dob = dob; } @Override public String toString () {return "Student [studid =" + studid + ", name =" + name + ", email =" + email + ", dob =" + dob + "]"; }}3. Présentez le package Core MyBatis et les packages de dépendance facultatifs dans le projet
Téléchargement de fichiers: téléchargement du package MyBatis
Dernière version Téléchargement: https://github.com/mybatis/mybatis-3/releases
Forfait obligatoire MyBatis-3.3.0.jar OJDBC14.jar
Package facultatif Junit-4.7.jar Log4J-1.2.17.jar
Parmi eux, MyBatis-3.3.0.jar est utilisé pour implémenter les fonctions fournies par MyBatis, OJDBC14.JAR est utilisée pour se connecter à la base de données, JUnit-4.7.jar est utilisé pour implémenter des tests fonctionnels et log4j-1.2.17.jar est utilisé pour effectuer une connexion en fonctionnement et Log4J-1.17.Jar est utilisé pour effectuer un journal de la journalisation et Log4J-1.17.Jar est utilisé pour effectuer un journal de la journalisation et Log4J-1.17.Jar est utilisé pour effectuer un journalisation
Comme indiqué dans la figure ci-dessous: Créez un nouveau pot de dossier dans le répertoire du projet, copiez et collez les packages dont vous avez besoin pour importer dans le répertoire JAR
Remarque: N'utilisez pas le chinois lorsque vous stockez ces packages en pot localement.
Ensuite, cliquez avec le bouton droit pour sélectionner les quatre fichiers du répertoire JAR, cliquez pour ajouter "buildPath-> Ajouter un chemin", et vous verrez l'interface suivante: Cela signifie que le chemin est ajouté avec succès
4. Présentez le fichier de configuration de MyBatis DTD Fichier de contraintes dans le projet
De même, créez un nouveau répertoire DTD dans le cadre du projet et copiez le fichier de contrainte dans le répertoire, comme indiqué dans la figure ci-dessous: Structure de fichiers DTD, téléchargement de fichier DTD:
http://download.csdn.net/download/suwu150/9660699
La fonction du fichier DTD est de contraindre le fichier de configuration XML, afin que les programmeurs puissent écrire le fichier XML en fonction des spécifications, et MyBatis peut le lire correctement et l'an analyser. Le DTD ci-dessus est configuré localement, et bien sûr, nous pouvons également utiliser la connexion du site officiel pour contraindre.
5 Les fichiers de configuration et les fichiers de mappage dans MyBatis sont respectivement introduits dans le projet
1) Mybatis-Config.xml ci-dessous SRC:
Tout d'abord, nous associons les contraintes DTD locales, entrez les préférences ci-dessous la figure suivante, entrez XML dans la zone de recherche, sélectionnez le nom de configuration du catalogue XML, puis cliquez sur le bouton Ajouter à droite
L'interface illustrée dans la figure ci-dessous apparaît, où l'emplacement de l'emplacement et l'emplacement de la clé sont vides. La figure ci-dessous est configurée. Le contenu clé est - // mybatis.org//dtd config 3.0 // en. Le contenu de l'emplacement est le vôtre. Vous pouvez le sélectionner via Workspace, c'est-à-dire le fichier DTD que nous avons copié dans le projet plus tôt (à l'étape 4):
Cliquez sur OK, maintenant nous pouvons écrire le fichier de configuration XML. Le but d'ajouter des contraintes est de standardiser l'écriture du programmeur pour s'assurer que MyBatis peut être analysé normalement.
Comme indiqué dans la figure ci-dessous: Sélectionnez SRC et cliquez avec le bouton droit pour créer un nouveau fichier MyBatis-Config.xml
Remarque: le début du fichier XML doit être surmonté et il ne doit pas y avoir d'espaces devant lui.
<? xml version = "1.0" Encoding = "UTF-8"?> <! - Effectuez des contraintes DTD, où - // mybatis.org//dtd config 3.0 // en est une contrainte publique, http://mybatis.org/dtd/mybatis-3config <! Doctype Configuration publique "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <Cactypealiases> <! - aliases pour la classe Pojo -> <tycias type = "com.mybatis.pojo. Alias = "Student" /> </ Typealiases> <! - Configurez l'environnement de la base de données où le développement est le nom de la base de données par défaut. Le type TransactionManager est le type JDBC. La source de données DataSource utilise des pools de connexion -> <Environments default = "Development"> <Environment ID = "Development"> <transactionManager type = "JDBC"> </RansactionManager> <DataSource Type = "Poolled"> <! - Configurez les informations de base de données. Utilisez Oracle Database ici -> <propriété name = "Driver" value = "oracle.jdbc.driver.oracledriver" /> <propriété name = "url" value = "jdbc: oracle: mince: @ 127.0.0.1: 1521: ORCL" /> <propriété name = "username" value " </ DataSource> </ Environment> </ Environments> <! - Configurez le chemin de mappage de fichiers XML, où vous pouvez effectuer des opérations SQL -> <mappers> <mapper ressource = "com / mybatis / mAperS / StudentMapper.xml" /> </mappers> </ / configuration>
2) StudentMapper.xml sous le package com.mybatis.mappers:
Tout d'abord, nous implémentons l'interface com.mybatis.mappers; Package pour créer une nouvelle interface StudentMapper.java sous le package pour correspondre à l'instruction SQL (mappage) dans le fichier XML, afin que nous puissions l'appeler
package com.mybatis.mappers; Importer java.util.list; import com.mybatis.pojo.student; Interface publique StudentMapper {list <Student> FindAllStudents (); Étudiant findStudentById (IDED ID); vide insertstudent (étudiant étudiant); }Utilisez la même méthode pour contraindre les fichiers de mapper
Ensuite, écrivez le code XML:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappep Public "- // Mybatis.org//dtd Mappe de l'interface que nous définissons. De cette façon, vous pouvez utiliser l'interface pour appeler l'instruction SQL de mappage. Ce nom doit correspondre à l'interface -> <masper namespace = "com.mybatis.mappers.studentmapper"> <resultmap type = "student" id = "studentResult"> <id propriété = "studid" column = "stud_id" /> <setly propriété = "name" column = "name" /> <result Property = "e-mail" column = "e-mail" /> /> </ resultMap> <select id = "findallstuents" resultMap = "StudentResult"> Sélectionner * dans les étudiants </lect> <! - Si le nom de la colonne et le nom de la propriété sont incohérents, vous pouvez donner un alias à la colonne de requête -> <Select Id = "findStudentbyId" ParamètreType = "int" ResultType = "Student"> SELECT STUD_ID AS Stud_id = # {id} </ select> <insert id = "insertstudent" ParameterType = "Student"> Insérer dans les étudiants (stud_id, nom, e-mail, dob) (# {studid}, # {name}, # {email}, # {dob}) </ insert> </1 / maaker> **************************************************************
Remarque: N'écrivez pas de point-virgule à la fin de l'instruction SQL écrite dans le fichier XML, sinon une erreur sera signalée. ORA-00911: caractères non valides
**************************************************************
6 Configurer la sortie du journal dans le fichier log4j.properties:
Sous l'emplacement SRC, nom de fichier log4j.properties
contenu:
log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d [%-5p] %c - %m%n #show sql log4j.logger.java.sql.resultSet = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = debug log4j.logger.java.sql.statement = debug Log4j.logger.java.sql.prepatementsstation = debug
7 Créez une classe de test StudentMappesttest.java
package com.mybatis.test; Importer java.io.ioException; import java.io.inputStream; Importer java.util.date; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; import org.junit.test; import com.mybatis.mappers.studentmapper; import com.mybatis.pojo.student; classe publique StudentMappentTest {@Test public void test_insertStudent () {SQLSession Session = NULL; essayez {// obtenez le fichier de configuration inputStream inputStream = Resources.getResourCeasStream ("MyBatis-Config.xml"); // Générer l'objet d'usine sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (inputStream); // Utilisez l'objet d'usine pour générer SQLSession Session = SQLSessionFactory.OpenSession (); // Utilisez SQLSession pour obtenir l'objet de classe d'implémentation de l'interface de mappage. La référence de l'interface pointe vers l'objet de la classe d'implémentation StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Étudiant étudiant = nouveau étudiant (1, "suwu150", "[email protected]", new Date ()); StudentMapper.InsertStudent (étudiant); } catch (ioException e) {session.rollback (); e.printStackTrace (); }}}8 Après une opération réussie, vous verrez les informations pertinentes sur l'exécution de la sortie de ce programme par la connexion LOG4J dans la console, comme suit:
Vous pouvez voir les informations suivantes lors de l'interrogation de la base de données
9 Quelques packages de base pour mybatis
Chaque fois que le fichier de configuration est lu, un objet d'usine SQLSessionFactory est généré, puis l'objet SQLSession est généré. Bien que ce processus ne soit pas compliqué, il s'agit également d'un processus de code répétitif, nous pouvons donc simplement le résumer:
Package com.mybatis.utils; Importer java.io.ioException; import java.io.inputStream; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; classe publique MyBatissQLSessionFactory {private statique sqlSessionFactory sqlSessionFactory; public static sqlSessionFactory getSQLSessionFactory () {if (sqlSessionFactory == null) {inputStream inputStream = null; essayez {inputStream = Resources.getResourCeAsStream ("MyBatis-Config.xml"); sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); } catch (ioException e) {e.printStackTrace (); lancer un nouveau RuntimeException (e.getCause ()); }} return sqlSessionFactory; } public static SqlSession OpenSession () {return opencession (false); // Soumission manuelle par défaut, nous devons donc soumettre lors de l'appel} public static sqlSession OpenSession (boolean autoCommit) {return getSQLessionFactory (). OpenSession (autoCommit); }}Après cela, chaque fois que vous l'utilisez, vous n'avez qu'à appeler la méthode statique OpenSession dans cette classe.
Le code ci-dessus peut être abrégé comme: // notez si la transaction est automatiquement engagée ou engagée manuellement
MybatissqlSessionFactory.OpenSession (). GetMapper (StudentMapper.class) .InsertStudent (s);
10 Dans le test ci-dessus, nous avons terminé les fonctions ajoutées. Implémentons les fonctions de suppression, de modification et de requête:
Dans le fichier de mappage, effectuez la configuration suivante:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappep Public "- // Mybatis.org//dtd Mappe de l'interface que nous définissons. De cette façon, vous pouvez utiliser l'interface pour appeler l'instruction SQL de mappage. Ce nom doit correspondre à l'interface -> <masper namespace = "com.mybatis.mappers.studentmapper"> <resultmap type = "student" id = "studentResult"> <id propriété = "studid" column = "stud_id" /> <setly propriété = "name" column = "name" /> <result Property = "e-mail" column = "e-mail" /> /> </ resultMap> <select id = "findallstuents" resultMap = "StudentResult"> Sélectionner * dans les étudiants </lect> <! - Si le nom de la colonne et le nom de la propriété sont incohérents, vous pouvez donner un alias à la colonne de requête -> <Select Id = "findStudentbyId" ParamètreType = "int" ResultType = "Student"> SELECT STUD_ID AS Stud_id = # {id} </lect> <insert id = "insertstudent" ParameterType = "Student"> Insérer dans les étudiants (stud_id, name, e-mail, dob) (# {studid}, # {name}, # {email}, # {dob}) </sert> <delete id = "DeleTtsudentByid" ParametType = "Int" Stud_id = # {id} </ delete> <update id = "updateStudentById" ParameterType = "Student"> Mise à jour les étudiants se définissent name = # {name}, e-mail = # {email} où Stud_id = # {studid} </fatedate> </ Mapper>Dans la classe d'interface, effectuez la configuration suivante:
package com.mybatis.mappers; Importer java.util.list; import com.mybatis.pojo.student; Interface publique StudentMapper {list <Student> FindAllStudents (); Étudiant findStudentById (IDED ID); vide insertstudent (étudiant étudiant); void DeleteStudentById (ID entier); vide updateStudentById (étudiant étudiant); }Écrivez le code suivant dans le fichier de test:
package com.mybatis.test; Importer java.io.ioException; import java.io.inputStream; Importer java.util.date; Importer java.util.list; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; import org.junit.test; import com.mybatis.mappers.studentmapper; import com.mybatis.pojo.student; import com.mybatis.utils.mybatissqlSessionFactory; classe publique StudentMappentTest {@Test public void test_insertStudent () {SQLSession Session = NULL; essayez {// obtenez le fichier de configuration inputStream inputStream = Resources.getResourCeasStream ("MyBatis-Config.xml"); // Générer l'objet d'usine sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (inputStream); // Utilisez l'objet d'usine pour générer SQLSession Session = SQLSessionFactory.OpenSession (); // Utilisez SQLSession pour obtenir l'objet de classe d'implémentation de l'interface de mappage. La référence de l'interface pointe vers l'objet de la classe d'implémentation StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Étudiant étudiant = nouveau étudiant (2, "suwu150", "[email protected]", new Date ()); StudentMapper.InsertStudent (étudiant); session.Commit (); System.out.println ("Exécution terminée"); } catch (ioException e) {session.rollback (); e.printStackTrace (); }} @Test public void test_deleTtestudentById () {SQLSession Session = NULL; Session = mybatissqlSessionFactory.OpenSession (); // Utilisez la classe encapsulée // Utilisez SQLSession pour obtenir l'objet de classe d'implémentation de l'interface de mappage. La référence de l'interface pointe vers l'objet de classe d'implémentation StudentMapper StudentMapper = session.getMapper (StudentMapper.class); StudentMapper.DeletesTudentByid (2); session.Commit (); System.out.println ("Exécution terminée"); } @Test public void test_updateStudentById () {SQLSession Session = NULL; Session = mybatissqlSessionFactory.OpenSession (); // Utilisez la classe encapsulée // Utilisez SQLSession pour obtenir l'objet de classe d'implémentation de l'interface de mappage. La référence de l'interface pointe vers l'objet de classe d'implémentation StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Étudiant étudiant = nouveau étudiant (); Student.setStudid (1); Student.SetName ("Sususu"); Student.SetEmail ("[email protected]"); StudentMapper.UpDateStudentByid (étudiant); session.Commit (); System.out.println ("Exécution terminée"); } @Test public void test_findStudentById () {SQLSession Session = null; Session = mybatissqlSessionFactory.OpenSession (); // Utilisez la classe encapsulée // Utilisez SQLSession pour obtenir l'objet de classe d'implémentation de l'interface de mappage. La référence de l'interface pointe vers l'objet de la classe d'implémentation StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Étudiant étudiant = StudentMapper.FindStudentById (1); System.out.println (étudiant); System.out.println (étudiant); System.out.println ("Exécution terminée"); } @Test public void test_findalStudents () {SQLSession Session = NULL; Session = mybatissqlSessionFactory.OpenSession (); // Utilisez la classe encapsulée // Utilisez SQLSession pour obtenir l'objet de classe d'implémentation de l'interface de mappage. La référence de l'interface pointe vers l'objet de la classe d'implémentation StudentMapper StudentMapper = session.getMapper (StudentMapper.class); List <Student> list = StudentMapper.FindalStudents (); System.out.println (liste); System.out.println ("Exécution terminée"); }}De cette façon, nous terminons l'addition, la suppression, la modification et la recherche d'objets étudiants
Ce qui précède est l'exemple de code de MyBatis ajouté, supprimé, modifié et recherché par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!