MyBatis 'Vorgänger war Ibatis, das ursprünglich ein Open -Source -Projekt von Apache war. Im Jahr 2010 wurde dieses Projekt von der Apache Software Foundation in Google Code verschoben und in MyBatis umbenannt. MyBatis ist ein hervorragendes Rahmen für Persistenzschicht, das einfache SQL -Abfragen, gespeicherte Verfahren und erweiterte Zuordnung unterstützt. MyBatis eliminiert die manuelle Einstellung fast aller JDBC -Code und -Parameter und das Abrufen der Ergebnissätze. MyBatis verwendet einfache XML oder Anmerkungen zur Konfiguration und ursprüngliche Zuordnung, Mapping -Schnittstellen und Javas Pojos (Plan alte Java -Objekte planen, gewöhnliche Java -Objekte) in Datenbank in der Datenbank.
Die funktionale Architektur von MyBatis ist in drei Ebenen unterteilt (das Bild wird von Baidu Encyclopedia entlehnt):
1) API -Schnittstellenschicht: Bietet Schnittstellen -APIs für die externe Verwendung, durch die Entwickler Datenbanken manipulieren. Sobald die Schnittstellenschicht die Anrufanforderung empfängt, wird die Datenverarbeitungsebene aufgerufen, um die spezifische Datenverarbeitung abzuschließen.
2) Datenverarbeitungsschicht: Verantwortlich für die spezifische SQL -Suche, SQL -Parsen, SQL -Ausführung und Ausführungsergebniszuordnung usw. Der Hauptzweck ist es, einen Datenbankvorgang basierend auf der Anforderung des Anrufs abzuschließen.
3) Grundlegende Support -Ebene: Verantwortlich für die grundlegendste funktionale Unterstützung, einschließlich Verbindungsmanagement, Transaktionsmanagement, Konfigurationsbelastung und Cache -Verarbeitung. Dies sind alles gemeinsame Dinge, die sie als die grundlegendsten Komponenten extrahieren. Bietet die grundlegendste Unterstützung für die obere Schicht der Datenverarbeitungsschicht.
Hier ist eine einfache MyBatis mit Demo.
Gesamtstruktur
POM -Abhängigkeit
Zwei Jar-Pakete müssen verwiesen werden, einer ist MyBatis und der andere ist MySQL-Connector-Java. Wenn es sich um ein Maven -Projekt handelt, fügen Sie Abhängigkeiten in der POM wie folgt hinzu.
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.3</version></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version></dependency>
Datenvorbereitung
Erstellen Sie Punktdaten in MySQL zum Testen:
Datenbank erstellen mybatis_test; Tabelle Benutzer erstellen (Alter Integer nicht NULL, Name Varchar (64) Null Null Standard ''); Einfügen von Benutzerwerten einfügen (18, 'zhanjindong'); Benutzerwerte einfügen (20, 'Zhangsan');
Konfigurationsdatei
Es sind zwei Arten von Konfigurationsdateien erforderlich. Eine davon ist die MyBatis-Konfigurationsdatei mybatis-config.xml. Im Beispiel handelt es sich um eine sehr einfache Konfiguration. Es gibt viele Anweisungen für die detaillierte Konfiguration im Internet.
<? name="cacheEnabled" value="false" /> <setting name="useGeneratedKeys" value="true" /> <setting name="defaultExecutorType" value="REUSE" /> </settings> <typeAliases> <typeAlias alias="User" type="test.mybatis.User"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type = "jdbc"/> <dataSource type = "Pooled"> <Eigenschaft name = "treiber" value = "com.mysql.jdbc.driver"/> <Eigenschaft name = "url" value = "jdbc: mysql: //192.168.71.38: 3306/mybatis_test"/> uaName "uaName" uaName "uaername" uaername: 3306/mybatis_test. value = "root"/> <Eigenschaft name = "password" value = "123456"/> </dataSource> </Umgebung> </Umgebungen> <mappers> <mapper ressourcen = "mappers/usermapper.xml"/> </mappers> </</configuration>
Ein anderer Typ ist die Datendatei der Datenzugriffsschnittstelle: Im Beispiel ist sie usermapper.xml. Diese Datei finden Sie von SRC/Main/Ressourcen- oder Subdadumbuch -MyBatis. Es wird durch die Ressource des Mappers/Mapper-Knotens in mybatis-config.xml angegeben.
<? <!-Hier muss der Namespace der Pfad der UsMapper-Schnittstelle sein "-> <Insert ID =" InsertUser "ParameterType =" Benutzer "> in den Benutzer (Name, Alter) Werte (#{Name},#{Alter}) <! Der Schnittstellenmethodenname in der UsMapper-Schnittstelle-> <select id = "getUser" resultType = "Benutzer" parameterType = "java.lang.String"> SELECT * vom Benutzer wobei Name =#{Name} </select> </mapper> Die entsprechende Zuordnungsdatei ist die UsMapper -Schnittstelle unter dem Namespace test.mybatis, der nur die Schnittstelle für den Zugriff auf die Datentabelle definiert:
Paket test.mybatis; öffentliche Schnittstelle UsMapper {public void InsertUser (Benutzerbenutzer); öffentlicher Benutzer GetUser (String -Name);} Benötigen Sie ein Pojo: user.java
Paket test.mybatis; Public Class User {private String -Name; privates Ganzzahlalter; public String getName () {return name; } public void setName (String -Name) {this.name = name; } public Integer getage () {Return Age; } public void setage (Ganzzahl älter) {this.age = älter; } public user (String -Name, ganzzahliger Alter) {Super (); this.name = name; this.age = Alter; } public user () {super (); }} prüfen
Die MyBatis -Datenbankoperation verwendet eine Klasse namens SQLSession. Diese Klasse wird durch SQLSessionFactory generiert. Es wird im Allgemeinen empfohlen, weltweit einen SQLSessionFactory aufrechtzuerhalten.
TestMybatis.java
Paket test.mybatis; import Java.io.ioxception; import Java.io.reader; import org.apache.ibatis.io.resources; SQLSessionFactory SQLSessionFactory; static {string ressource = "mybatis-config.xml"; Reader reader = null; try {reader = ressourcen.getResourceAsReader (Ressource); } catch (ioException e) {System.out.println (e.getMessage ()); } SQLSessionFactory = new SQLSessionFactoryBuilder (). Build (Leser); } public static sqlSessionFactory gotsQlSessionFactory () {return SQLSessionFactory; }}Der Testcode lautet wie folgt:
TestMybatis.java
Paket test.mybatis; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; static {sqlSessionFactory = mybatisutil.getSQLSessionFactory (); } public static void main (String [] args) {testAdd (); GetUser (); } public static void testadd () {sqlSession SQLSession = SQLSessionFactory.OpenSession (); try {UsMapper usermapper = sqlSession.getMapper (UsMapper.Class); User user = new user ("lisi", New Integer (25)); userMapper.insertuser (Benutzer); sqlSession.commit (); // Sie müssen hier einreichen, da die Daten nicht die Datenbank eingeben} schließlich {SQLSession.close (); }} public static void getUser () {sqlSession SQLSession = SQLSessionFactory.OpenSession (); try {UsMapper usermapper = sqlSession.getMapper (UsMapper.Class); User user = userMapper.getUser ("Zhangsan"); System.out.println ("Name:" + user.getName () + "| Alter:" + user.getage ()); } endlich {sqlSession.close (); }}} Dinge zu beachten
1. MyBatis wird Log4J verwenden, um Protokolle aufzuzeichnen, aber das Einschalten des Debug -Modus scheint einen sehr starken Einfluss auf die Leistung zu haben.
2. MyBatis 'Query -Cache hat einen großen Einfluss auf die Leistung, und die Lücke zwischen Aktivierung und Nicht -Aktivierung ist sehr groß.
HINWEIS: Die Cache -Zeile muss der Mapper -Datei hinzugefügt werden, sonst wird es nicht wirksam.
Beispielcode -Download: Code herunterladen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.