Schreiben Sie eine einfache Instanz von MyBatis -Einfügen von Daten
1. Die Bedeutung der Datenbanktabelle erstellt Dob = Geburtsdatum
Tabellenstudenten erstellen (stud_id nummer primärschlüssel, name varchar2 (20), E -Mail varchar2 (20), DOB -Datum);
Die in der Oracle -Datenbank erstellte Tabelle bedeutet, dass die Erstellung erfolgreich ist. Wenn der Name verwendet wurde, können Sie ihn löschen, bevor Sie die Tabelle erstellen: Droptabellenstudenten; oder Kaskaden löschen Droptabelle Schüler Kaskadenbeschränkungen; Und dann wieder nachbauen.
2 Erstellen Sie ein neues Projekt
2.1 Erstellen Sie das entsprechende Paket und die entsprechende Klasse, wobei der Schüler das Objekt ist, das wir einfügen möchten. Da der Datentyp den Werten in der Datenbank entspricht, können wir das gesamte Objekt einfügen. Daher verwenden wir die Pojo -Klasse, um das Objekt zu verkapulieren.
Paket com.mybatis.pojo; import Java.util.date; Student der öffentlichen Klasse {private Integer Studid; privater Zeichenfolge Name; private Zeichenfolge E -Mail; Privatdatum Dob; public student () {} // Beachten Sie den Konstruktor ohne Parameter Public Student (Ganzzahl Studid, String -Name, String -E -Mail, Datum DOB) {this.studid = studid; this.name = name; this.email = E -Mail; this.dob = dob; } public Integer getstudid () {return Studid; } public void setstudid (Ganzzahl StudiD) {this.studid = studid; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public String getemail () {E -Mail zurückgeben; } public void setemail (String -E -Mail) {this.email = E -Mail; } public date getDob () {return dob; } public void setdob (Datum dob) {this.dob = dob; } @Override public String toString () {return "student [studid =" + studid + ", name =" + name + ", E -Mail =" + E -Mail + ", dob =" + dob + "]"; }}3. Einführen
Datei -Download: MyBatis Paket Download
Neueste Version Download: https://github.com/mybatis/mybatis-3/releases
Erforderliches Paket mybatis-3.3.0.jar ojdbc14.jar
Optionales Paket junit-4.7.jar log4j-1.2.17.jar
Unter ihnen wird MyBatis-3.3.0.jar verwendet, um die von MyBatis bereitgestellten Funktionen zu implementieren
Wie in der Abbildung unten gezeigt: Erstellen Sie ein neues Ordnerglas im Projektverzeichnis, kopieren Sie die Pakete, die Sie benötigen, um in das JAR -Verzeichnis zu importieren
HINWEIS: Verwenden Sie keine Chinesen, wenn Sie diese JAR -Pakete lokal aufbewahren.
Klicken Sie dann mit der rechten Maustaste, um die vier Dateien im JAR-Verzeichnis auszuwählen, um "BuildPath-> Pfad hinzufügen" hinzuzufügen. Sie sehen die folgende Schnittstelle: Dies bedeutet, dass der Pfad erfolgreich hinzugefügt wird
4. Einführen
Erstellen Sie in ähnlicher Weise ein neues DTD -Verzeichnis unter dem Projekt und kopieren Sie die Einschränkungsdatei in das Verzeichnis, wie in der folgenden Abbildung gezeigt: DTD -Dateistruktur, DTD -Datei herunterladen:
http://download.csdn.net/download/suwu150/9660699
Die Funktion der DTD -Datei besteht darin, die Konfigurationsdatei XML einzuschränken, damit Programmierer die XML -Datei gemäß den Spezifikationen schreiben können und MyBatis sie korrekt lesen und analysieren kann. Das obige DTD ist lokal konfiguriert, und natürlich können wir auch die Verbindung der offiziellen Website nutzen, um einzuschränken.
5 Die Konfigurationsdateien und Zuordnungsdateien in mybatis werden jeweils in das Projekt eingeführt
1) mybatis-config.xml unter SRC:
Zuerst verbinden wir die lokalen DTD -Einschränkungen, geben die folgenden Abbildung unter den Einstellungen ein, geben XML in das Suchfeld ein, wählen Sie den Namen der XML -Katalog -Konfiguration aus und klicken Sie dann auf die Schaltfläche Hinzufügen rechts hinzufügen
Die in der folgende Abbildung angezeigte Schnittstelle wird angezeigt, wobei der Standort und der Schlüsselort leer sind. Die folgende Abbildung ist konfiguriert. Der Schlüsselinhalt ist -// mybatis.org//dtd config 3.0 // en. Der Standortinhalt ist Ihr eigener. Sie können es über den Arbeitsbereich auswählen, dh die DTD -Datei, die wir zuvor an das Projekt kopiert haben (in Schritt 4):
Klicken Sie auf OK, jetzt können wir die XML -Konfigurationsdatei schreiben. Der Zweck des Hinzufügens von Einschränkungen besteht darin, das Schreiben des Programmierers zu standardisieren, um sicherzustellen, dass MyBatis normal analysiert werden kann.
Wie in der Abbildung unten gezeigt: Wählen Sie SRC aus und klicken Sie mit der rechten Maustaste, um eine neue Datei mybatis-config.xml zu erstellen
HINWEIS: Der Beginn der XML -Datei muss überragt werden, und es dürfen keine Räume davor stehen.
<xml version = "1.0" coding = "utf-8"?> <!-DTD-Einschränkungen durchführen, wobei-// mybatis.org//dtd config 3.0 // en eine öffentliche Einschränkung ist, http://mybatis.org/dtd/mybatis-3-Config.dtd. <! DocType configuration public "-// mybatis.org//dtd config 3.0 // en alias = "student" /> < /typealias> <!- Konfigurieren Sie die Datenbankumgebung, in der die Entwicklung der Standarddatenbankname ist. Transaktionsmanager -Typ ist JDBC -Typ. Die DatenquellendataSource verwendet Verbindungspools-> <Environments default = "Development"> <Environment ID = "Development"> <transactionManager type = "jdbc"> </transactionManager> <dataSource type = "Pooled"> <!-Datenbankinformationen konfigurieren. Verwenden Sie hier die Oracle-Datenbank-> <Eigenschaft name = "treiber" value = "oracle.jdbc.driver.oracledriver </dataSource> </Umgebung> </Umgebungen> <!-Konfigurieren Sie den XML-Dateizuordnungspfad, in dem Sie SQL-Operationen ausführen können-> <mappers> <mapper ressourcen = "com/mybatis/mappers/studentMapper.xml"/> </mappers> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert> </konfiguriert
2) studentMapper.xml unter dem Com.mybatis.Mappers -Paket:
Zunächst implementieren wir Interface com.mybatis.mappers; Paket zum Erstellen einer neuen Schnittstelle studentMapper.java unter dem Paket, um der SQL -Anweisung (Mapping) in der XML -Datei zu entsprechen, damit wir sie aufrufen können
Paket com.mybatis.mappers; importieren java.util.list; import com.mybatis.pojo.student; public interface studentMapper {list <Student> findAllstudentents (); Student FindstudentbyId (Integer ID); void InsertStudent (Studentenstudent); }Verwenden Sie dieselbe Methode, um Mapper -Dateien einzuschränken
Schreiben Sie dann den XML -Code:
<? Qualifizierter Name der Schnittstelle, die wir definieren. Auf diese Weise können Sie die Schnittstelle verwenden, um die SQL -Anweisung Mapping aufzurufen. Dieser Name muss der Schnittstelle entsprechen-> <Mapper Namespace = "com.mybatis.mappers.StudentMapper"> <resultMap type = "student" id = "studentResult"> <id Propertation = "Studid" Column = "Stud_id" /> <Ergebnis Eigenschaft "name" name "name" name "name" name "name" /> <sergebnisse " </resultMap> <select id="findAllStudents" resultMap="StudentResult"> SELECT * FROM STUDENTS </select> <!-- If the column name and the property name are inconsistent, you can give an alias to the query column--> <select id="findStudentById" parameterType="int" resultType="Student"> SELECT STUD_ID AS STUDID,NAME,EMAIL,DOB FROM STUDENTS WHERE Stud_id =#{id} </select> <insert id = "InsertStudent" parameterType = "student"> in student (Stud_id, Name, E -Mail, dob) Werte (#{studid},#{name},#{E -Mail},#{dob}) </einfügen> </mungper> **************************************************
Hinweis: Schreiben Sie kein Semikolon am Ende der in der XML -Datei geschriebenen SQL -Anweisung, da ansonsten ein Fehler gemeldet wird. ORA-00911: Ungültige Zeichen
**************************************************
6 Die Protokollausgabe in log4j.Properties -Datei konfigurieren:
Unter dem Speicherort SRC, Dateiname log4j.properties
Inhalt:
log4j.rootLogger = debug, stdout log4j.appender.stdout = org.apache.log4j.conSeAppender log4j.appender.stdout.layout = org.APache.log4j.PatternLayout log4j.Appender.stdout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout.Layout. sql log4j.logger.java.sql.resultset = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = debugg log4j.logger.java.sql.statement = debugg4j.logger.java.java.java.SQl.SQL.SQL.SQL.SQL.SQL.SQL.SQL.SQL.SQL.SQL.SQL.SQL.PREPARTENTIONS = DEBUGEL.
7 Erstellen Sie eine Testklasse studentMapperTest.java
Paket com.mybatis.test; importieren java.io.ioException; importieren java.io.inputstream; import 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; public class studentMapperTest {@test public void test_insertStudent () {SQLSession Session = null; Versuchen Sie {// Die Konfigurationsdatei inputStream eingeben. // Fabrikobjekt SQLSessionFactory SQLSessionFactory = new SQLSessionFactoryBuilder () bauen (InputStream); // Verwenden Sie das Werksobjekt, um SQLSession Session = SQLSessionFactory.openSession () zu generieren; // Verwenden Sie SQLSession, um das Objekt der Implementierungsklasse der Zuordnungsschnittstelle zu erhalten. Die Referenz der Schnittstelle zeigt auf das Objekt der Implementierungsklasse StudentMapper studentMapper = session.getMapper (studentMapper.class); Student Student = New Student (1, "Suwu150", "[email protected]", New Date ()); studentMapper.insertStudent (Student); } catch (ioException e) {session.rollback (); E. printstacktrace (); }}}8 Nach erfolgreichem Betrieb sehen Sie die relevanten Informationen über das Ausführen dieses Programmausgangs durch das LOG4J -Anmeldung in der Konsole wie folgt:
Sie können die folgenden Informationen beim Abfragen der Datenbank sehen
9 Einige grundlegende Pakete für MyBatis
Jedes Mal, wenn die Konfigurationsdatei gelesen wird, wird ein Fabrikobjekt SQLSessionFactory generiert und dann das SQLSession -Objekt generiert. Obwohl dieser Prozess nicht kompliziert ist, ist er auch ein sich wiederholender Codeprozess, sodass wir ihn einfach zusammenfassen können:
Paket com.mybatis.utils; importieren java.io.ioException; importieren 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; öffentliche Klasse MyBatissqlSessionFactory {private statische SQLSessionFactory SQLSessionFactory; public static sqlSessionFactory gotsQlSessionFactory () {if (sqlSessionFactory == null) {InputStream InputStream = null; try {inputStream = ressourcen.getResourceAsStream ("mybatis-config.xml"); SQLSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); } catch (ioException e) {e.printstacktrace (); Neue RunTimeException werfen (e.getCause ()); }} return SQLSessionFactory; } public static sqlSession openSession () {return openSession (false); // Manuelle Einreichung standardmäßig, daher müssen wir einreichen, wenn wir} öffentliche statische SQLSession OpenSession (boolean AutoCommit) {returnsQlSessionFactory (). OpenSession (AutoCommit); }}Danach müssen Sie jedes Mal, wenn Sie es verwenden, nur die statische Methode in dieser Klasse aufrufen.
Der obige Code kann abgekürzt werden wie: // Beachten Sie, ob die Transaktion automatisch festgelegt oder manuell verpflichtet ist
MybatissqlSessionFactory.openSession ().
10 Im obigen Test haben wir die zusätzlichen Funktionen nur ausgefüllt. Lassen Sie uns die Funktionen von Löschen, Änderungen und Abfragen implementieren:
Erstellen Sie in der Zuordnungsdatei die folgende Konfiguration:
<? Qualifizierter Name der Schnittstelle, die wir definieren. Auf diese Weise können Sie die Schnittstelle verwenden, um die SQL -Anweisung Mapping aufzurufen. Dieser Name muss der Schnittstelle entsprechen-> <Mapper Namespace = "com.mybatis.mappers.StudentMapper"> <resultMap type = "student" id = "studentResult"> <id Propertation = "Studid" Column = "Stud_id" /> <Ergebnis Eigenschaft "name" name "name" name "name" name "name" /> <sergebnisse " </resultMap> <select id="findAllStudents" resultMap="StudentResult"> SELECT * FROM STUDENTS </select> <!-- If the column name and the property name are inconsistent, you can give an alias to the query column--> <select id="findStudentById" parameterType="int" resultType="Student"> SELECT STUD_ID AS STUDID,NAME,EMAIL,DOB FROM STUDENTS WHERE STUD_ID=#{id} </select> <insert id="insertStudent" parameterType="Student"> INSERT INTO STUDENTS(STUD_ID,NAME,EMAIL,DOB) VALUES(#{studId},#{name},#{email},#{dob}) </insert> <delete id="deleteStudentById" parameterType="int"> delete from students where Stud_id =#{id} </delete> <update id = "updateStudentById" parameterType = "student"> update student set name =#{name}, E -Mail = {E -Mail} wobei Student =#{Studid} </update> </mapper>Machen Sie in der Schnittstellenklasse die folgende Konfiguration:
Paket com.mybatis.mappers; importieren java.util.list; import com.mybatis.pojo.student; public interface studentMapper {list <Student> findAllstudentents (); Student FindstudentbyId (Integer ID); void InsertStudent (Studentenstudent); void DeletestudentbyId (Ganzzahl -ID); void UpdateStudentbyId (Student Student); }Schreiben Sie den folgenden Code in die Testdatei:
Paket com.mybatis.test; importieren java.io.ioException; importieren java.io.inputstream; import Java.util.date; importieren 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; public class studentMapperTest {@test public void test_insertStudent () {SQLSession Session = null; Versuchen Sie {// Die Konfigurationsdatei inputStream eingeben. // Fabrikobjekt SQLSessionFactory SQLSessionFactory = new SQLSessionFactoryBuilder () bauen (InputStream); // Verwenden Sie das Werksobjekt, um SQLSession Session = SQLSessionFactory.openSession () zu generieren; // Verwenden Sie SQLSession, um das Objekt der Implementierungsklasse der Zuordnungsschnittstelle zu erhalten. Die Referenz der Schnittstelle zeigt auf das Objekt der Implementierungsklasse StudentMapper studentMapper = session.getMapper (studentMapper.class); Student Student = New Student (2, "Suwu150", "[email protected]", New Date ()); studentMapper.insertStudent (Student); Session.Commit (); System.out.println ("Ausführung abgeschlossen"); } catch (ioException e) {session.rollback (); E. printstacktrace (); }} @Test public void test_deletStudentbyId () {SQLSession Session = null; Session = MyBatissQLSessionFactory.OpenSession (); // Verwenden Sie die eingekapselte Klasse // SQLSession verwenden, um das Objekt der Implementierungsklasse der Zuordnungsschnittstelle zu erhalten. Die Referenz der Schnittstelle zeigt auf die Implementierungsklasse Object StudentMapper studentMapper = session.getMapper (studentMapper.class); studentMapper.DeletStudentbyId (2); Session.Commit (); System.out.println ("Ausführung abgeschlossen"); } @Test public void test_updatestudentbyId () {SQLSession Session = null; Session = MyBatissQLSessionFactory.OpenSession (); // Verwenden Sie die eingekapselte Klasse // SQLSession verwenden, um das Objekt der Implementierungsklasse der Zuordnungsschnittstelle zu erhalten. Die Referenz der Schnittstelle zeigt auf die Implementierungsklasse Object StudentMapper studentMapper = session.getMapper (studentMapper.class); Student Student = New Student (); student.setstudid (1); student.setName ("sususu"); student.setemail ("[email protected]"); studentMapper.UpDatestudentbyId (Student); Session.Commit (); System.out.println ("Ausführung abgeschlossen"); } @Test public void test_findstudentbyId () {SQLSession Session = null; Session = MyBatissQLSessionFactory.OpenSession (); // Verwenden Sie die eingekapselte Klasse // SQLSession verwenden, um das Objekt der Implementierungsklasse der Zuordnungsschnittstelle zu erhalten. Die Referenz der Schnittstelle zeigt auf das Objekt der Implementierungsklasse StudentMapper studentMapper = session.getMapper (studentMapper.class); Student Student = StudentMapper.FindstudentbyId (1); System.out.println (Student); System.out.println (Student); System.out.println ("Ausführung abgeschlossen"); } @Test public void test_findAllstudents () {SQLSession Session = null; Session = MyBatissQLSessionFactory.OpenSession (); // Verwenden Sie die eingekapselte Klasse // SQLSession verwenden, um das Objekt der Implementierungsklasse der Zuordnungsschnittstelle zu erhalten. Die Referenz der Schnittstelle zeigt auf das Objekt der Implementierungsklasse StudentMapper studentMapper = session.getMapper (studentMapper.class); LIST <Student> list = studentMapper.findAllstudentents (); System.out.println (Liste); System.out.println ("Ausführung abgeschlossen"); }}Auf diese Weise vervollständigen wir die Hinzufügung, Löschung, Änderung und Suche nach Studentenobjekten
Das obige ist der Beispielcode von MyBatis, der vom Editor hinzugefügt, gelöscht, geändert und gesucht wurde. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!