Grundlegende Nutzungsbewertung:
SQL -Anweisungen werden in XML -Dateien oder Java -Anmerkungen gespeichert. Ein Beispiel für die Mabatis -Zuordnung (die Java -Schnittstelle und MyBatis -Annotation verwendet):
Paket org.mybatis.example; public interface blogmapper {@select ("Auswählen * aus dem Blog wobei ID = #{id}") Blog selectBlog (int id);};}Beispiel der Ausführung:
BlogMapper mapper = session.getMapper (BlogMapper.Class); Blog blog = mapper.selectBlog (101);
SQL -Anweisungen und -Kapierungen können auch zu einer XML -Datei externalisiert werden:
<? namespace = "org.mybatis.example.blogmapper"> <select id = "selectBlog" parameterType = "int" resultType = "blog"> aus dem Blog, wobei ID = #{ID} </select> </mapper>Sie können auch die MyBatis -API verwenden, um Anweisungen auszuführen:
Blog blog = session.selectone ("org.mybatis.example.blogmapper.selectblog", 101);Weitere Informationen finden Sie im von der MyBatis -Website bereitgestellten Benutzerhandbuch.
In den Frühling integrieren
MyBatis integriert sich in den Frames -Framework. Das Frames -Framework ermöglicht es MyBatis, an Frühlingstransaktionen teilzunehmen, erzeugt MyBatis -Mapper und -sitzungen und injiziert sie in andere Bohnen.
Hier ist ein grundlegendes Beispiel für XML -Konfiguration: Ein Mapper wird erstellt und in die "BlogService" -Bohne injiziert.
<bean id = " /> < /bean> <bean id = "BlogService"> <Property name = "BlogMapper" Ref = "BlogMapper" /> < /bean>
Wenn Sie nun MyBatis anrufen, müssen Sie nur eine Bean anrufen:
öffentliche Klasse BlogServiceImpl implementiert BlogService {private blogmapper blogmapper; public void setBlogMapper (BlogMapper BlogMapper) {this.blogmapper = BlogMapper; } public void dosomething mit (int blogId) {blog = blogMapper.selectBlog (BlogID); ...}} SQLSessionFactory
Jede MyBatis -Anwendung nimmt eine Instanz des SQLSessionFactory -Objekts als Kern. SQLSessionFactory selbst wird von SQLSessionFactoryBuilder erstellt. Im Allgemeinen entspricht in einer Anwendung eine Datenbank nur einer SQLSessionFactory, sodass wir im Allgemeinen SQLSessionFactory als Singleton -Muster definieren oder sie durch Frühling usw. injizieren.
Die Methoden zum Erstellen von SQLSessionFactoryBuilder zum Erstellen von SQLSessionFactory sind:
Die von diesen Methoden entworfenen Hauptparameter sind InputStream, Umgebung und Eigenschaften, wobei InputStream ein Eingabestream ist, der aus der Konfigurationsdatei erhalten wird. Die Umgebung stellt dar, welche Umgebung Sie derzeit unter den vielen in der Konfigurationsdatei konfigurierten Umgebungen, einschließlich Datenquellen und -transaktionen, verwenden, und die Standardumgebung wird standardmäßig verwendet. Unter Verwendung von Eigenschaften lädt MyBatis die entsprechenden Eigenschaften oder Dateien, die in der Konfigurationsdatei verwendet werden können.
Bauen von SQLSessionFactory aus XML
private static sqlSessionFactory SQLSessionFactory = null; static {try {inputStream is = ressourcen.getResourceAsStream ("config/mybatis_config.xml"); SQLSessionFactory = new SQLSessionFactoryBuilder (). Build (IS); } catch (ioException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }} public static sqlSessionFactory gotsQlSessionFactory () {return SQLSessionFactory; }
Das Folgende ist eine grundlegende Struktur von Konfigurationsdateien:
Die Konfigurationsdatei von MyBatis enthält im Allgemeinen die folgenden Teile:
<Environments default = "Development"> <Environment ID = "Entwicklung"> <transactionManager type = "jdbc" /> <dataSource type = "Pooled"> <Eigenschaft name = "treiber" value = "$ {jdbc.driver}" /> <Property name = "url" value = "$ {{jdbc.url}}" /> < value = "$ {jdbc.username}"/> <Eigenschaft name = "password" value = "$ {jdbc.password}"/> </dataSource> </umwelt> </Umgebungen> Da MyBatis mehrere Umgebungen konfigurieren kann, können Sie eine bestimmte Umgebung angeben, wenn Sie eine SQLSessionFactory erstellen, um eine SQLSessionFactory zu erstellen. Wenn Sie es nicht angeben, wird die Standardumgebung verwendet.
Transaktionsmanager
Es gibt zwei Arten von Transaktionsmanagern in MyBatis (dh type = ”[JDBC | Managed]“):
JDBC Diese Konfiguration direkt und verwendet einfach JDBCs Commit- und Rollback -Einstellungen. Es stützt sich auf Verbindungen, die von Datenquellen zur Verwaltung der Transaktionsumfang erhalten wurden.
Managed Configuration macht wenig. Es verpflichtet sich nie oder rollt eine Verbindung zurück. Der Container kann den gesamten Lebenszyklus einer Transaktion (z. B. den Kontext des Spring- oder JEE -Anwendungsservers) verwalten, es schließt die Verbindung standardmäßig. Einige Container wollen dies jedoch nicht. Wenn Sie sie also aus der Verbindung stoppen müssen, stellen Sie die Eigenschaft Closeconnection auf false ein.
DataSource
Das DataSource -Element verwendet die grundlegende JDBC -Datenquellenschnittstelle, um Ressourcen für JDBC -Verbindungsobjekte zu konfigurieren.
Viele MyBatis -Anwendungen konfigurieren die Datenquelle wie in den Beispielen gezeigt. Es ist jedoch nicht notwendig. Sie sollten wissen, dass Datenquellen erforderlich sind, um die Verwendung fauler Ladens zu erleichtern.
Es gibt drei integrierte Datenquelltypen (dh type = "???"):
Unbeschuldt Die Implementierung dieser Datenquelle besteht darin, die Verbindung jedes Mal einfach zu öffnen und zu schließen, wenn sie angefordert wird. Es ist ein wenig langsam, was eine gute Wahl für einfache Anwendungen ist, da keine zeitnahen Verbindungen erforderlich sind. Darüber hinaus sind verschiedene Datenbanken unterschiedlich. Für einige Datenbanken ist es nicht wichtig, die Datenquelle zu konfigurieren, und diese Konfiguration ist ebenfalls im Leerlauf. Die Datenquelle von UNPOOLED TYP wird nur verwendet, um die folgenden 5 Eigenschaften zu konfigurieren:
Optional können Sie die Eigenschaften der Datenbanktreiber übergeben. Dazu beginnt das Präfix des Attributs mit "Treiber". Zum Beispiel:
Driver.encoding = utf8
Dadurch wird der Wert "UTF8" übergeben, um die Eigenschaft "Codierung" zu übergeben, die über die Methode TriverManager.getConnection (URL, DriverPerties) über die Datenbanktreiber übergeben wird.
Pooled Dies ist eine Implementierung des Datenquellenverbindungspools für JDBC -Verbindungsobjekte, mit dem die erforderliche anfängliche Verbindung und Authentifizierungszeit beim Erstellen neuer Verbindungsinstanzen vermieden werden. Dies ist eine beliebte Methode, die derzeit von Webanwendungen verwendet wird, um schnell auf Anfragen zu reagieren.
Zusätzlich zu den oben genannten (unpoolten) Attributen gibt es viele Attribute, mit denen die gepoolte Datenquelle konfiguriert werden kann:
Unter ihnen erfordert die JNDI -Datenquellenkonfiguration nur zwei Eigenschaften:
(1) Die Eigenschaft initial_context wird verwendet, um die Umgebung aus dem Anfangskontext (dh initialcontext.lookup (initial-context) zu ermitteln. Dies ist eine optionale Eigenschaft. Wenn ignoriert wird, wird die Eigenschaft data_source erneut direkt mit InitialContext als Hintergrund durchsucht.
. Es wird nach der Umgebung suchen, die von der Initial_Context -Abfrage als Hintergrund zurückgegeben wird. Wenn initial_context das Ergebnis nicht zurückgibt, wird nach dem anfänglichen Kontext direkt als Umgebung gesucht.
Dann gibt es einen Mapper. Mapper wird verwendet, um SQL -Anweisungen zuzuordnen. Zunächst muss ich MyBatis mitteilen, wo diese SQL -Aussagen finden sollen, dh den Ressourcenort angeben.
<mappers> <mapper resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers>
Hier ist eine einfache Konfigurationsdatei, die ich während des Testprozesses durchgeführt habe:
<? resource="config/jdbc.properties"></properties> <typeAliases> <typeAlias alias="Blog" type="com.tiantian.mybatis.model.Blog"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name = "driver" value = "$ {jdbc.driver}" /> <Eigenschaft name = "url" value = "$ {jdbc.url}" /> <Eigenschaft name = "username" value = "$ {jdbc.username}" /> <Property name = "password" $ {{{jdbc.-password}} " <mappers> <mapper resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers> </configuration>
Eine externe Eigenschaftsdatei wird in die obige Konfigurationsdatei importiert. Die Einführung in die Eigenschaft in der MyBatis -Konfigurationsdatei kann direkt im Eigenschaftenelement enthalten oder von außen unter Verwendung des Eigenschaftenelements eingeführt werden oder kann als Parametereigenschaften beim Erstellen des SQLSessionFactory übergeben werden. Da Eigenschaften in MyBatis -Konfigurationsdateien aus so vielen Orten eingeführt werden können, beinhaltet dies ein Prioritätsproblem, und MyBatis wird in der folgenden Reihenfolge nach ihnen suchen:
In der Konfigurationsdatei werden zuerst die Eigenschaften im Eigenschaftenelement -Körper gelesen, und dann werden die von außen eingeführten Eigenschaften in der Eigenschaftendatei gelesen, wodurch die gleichen Eigenschaften überschrieben werden, die zuvor gelesen wurden. Schließlich werden die Eigenschaften in den Eigenschaften beim Erstellen der SQLSessionFactory gelesen, die auch die gleichen Eigenschaften zuvor überschreiben.
Nachdem Sie die SQLSessionFactory hatten, erhalten Sie eine bestimmte SQLSession. Bei der Verwendung von MyBatis ist jede Operation mit SQLSession untrennbar miteinander verbunden. Daher ist es sehr wichtig, eine SQLSession zu erhalten. Darüber hinaus kann SQLSession nicht gemeinsam genutzt und mit Thread-Absichern geteilt werden. Sie sollten also jedes Mal öffnen, wenn Sie SQLSession benötigen und ihn dann nach der Verwendung schließen.
SQLSession Session = SQLSessionFactory.OpenSession ();
Die Methoden der SQLSessionFactory Zhonghu District SQLSession sind:
Ihre Hauptunterschiede sind:
Die Standard -OpenSession -Methode enthält keine Parameter. Sie erzeugt eine SQLSession mit den folgenden Eigenschaften:
Der Executortype hat drei Werte:
Die grundlegenden Operationen von MyBatis sind das Hinzufügen, Löschen, Ändern und Überprüfen, nämlich einfügen, löschen, aktualisieren und auswählen. Bei der Ausführung dieser grundlegenden Vorgänge können Sie SQLSession direkt verwenden, um auf die Zuordnung in der Mapper -Konfigurationsdatei zuzugreifen, oder die Mapper -Schnittstelle, die der Mapper -Konfigurationsdatei entspricht, um Operationen auszuführen, so unter der Annahme, dass die Parameter und Rückgabewerte der in der Mapper -Schnittstelle definierten Methoden der in der Mapper -Konfigurationsdatei definierten Parameter und Rückgabewerte zurückgeben. Bei der Verwendung der Mapper -Schnittstelle können die entsprechenden SQL -Anweisungen in der Mapper -Konfigurationsdatei geschrieben oder direkt in den entsprechenden Methoden in der Mapper -Schnittstelle unter Verwendung der entsprechenden Annotationen markiert werden. Dies ist im folgenden Beispielcode zu sehen.
Hier ist eine Reihe von Beispielcodes:
Erst eine Werkzeugklasse veröffentlicht, um SQLSessionFactory zu erhalten:
importieren java.io.ioException; importieren java.io.inputstream; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; public class util {private static sqlSessionFactory SQLSessionFactory = null; static {try {inputStream is = ressourcen.getResourceAsStream ("config/mybatis_config.xml"); SQLSessionFactory = new SQLSessionFactoryBuilder (). Build (IS); } catch (ioException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }} public static sqlSessionFactory gotsQlSessionFactory () {return SQLSessionFactory; }}
MyBatis -Konfigurationsdatei:
<? resource="config/jdbc.properties"></properties> <typeAliases> <typeAlias alias="Blog" type="com.tiantian.mybatis.model.Blog"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name = "driver" value = "$ {jdbc.driver}" /> <Eigenschaft name = "url" value = "$ {jdbc.url}" /> <Eigenschaft name = "username" value = "$ {jdbc.username}" /> <Property name = "password" $ {{{jdbc.-password}} " <mappers> <mapper resource = "com/tiantian/mybatis/modell/blogmapper.xml"/> </mappers> </configuration>
BlogMapper.xml
<? namespace = "com.tiantian.mybatis.model.blogMapper"> <!-Rekord hinzufügen-> <insert id = "insertblog" parameterType = "blog"> in t_blog (Titel, Inhalt, Inhalt, Inhaber) Werte (#{Titel},#{Inhalt},#{besitzer}) </<! parameterType = "int" resultType = "blog"> ausgewählt * Aus t_blog wob und befragen Sie mehrere Datensätze, um das Ergebnis zurückzugeben, eine Sammlung. resultType ist nicht der Sammelentyp, aber der in der Sammlung enthaltene Typ-> <select id = "selectAll" resultType = "blog"> select * aus t_blog </select> <!-fuzzy query-> <select id = "fuzzyQuery" resultType = "blog" ParameterTyp = "java.lang.lang.Anlang.Srang.Strang.Strang.string"> "aus dem T_BLOGE-Titel" von t_blogs, wob "%" #{title} "%" </select> <!-Datensatz löschen-> <delete id = "DeleteBlog" ParameterType = "int"> Löschen Sie aus T_blog wobEinige Probleme, die in SQL Mapping -Anweisungen festgestellt werden sollten:
Blog.java
Paket com.tiantian.mybatis.model; öffentlicher Klassenblog {private int id; privater String -Titel; private String -Inhalte; privater String -Besitzer; public int getid () {return id; } public void setId (int id) {this.id = id; } public String gettitle () {return title; } public void settitle (String title) {this.title = title; } public String getContent () {return content; } public void setContent (String -Inhalt) {this.content = content; } public String getowner () {Rückkehrer; } public void setowner (String -Eigentümer) {this.Owner = Eigentümer; } @Override public String toString () {return "id:" + id + ", title:" + title + ", content:" + content + ", Eigentümer:" + Eigentümer; }}
BlogMapper.java
Paket com.tiantian.mybatis.model; importieren java.util.list; import org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.select; import org.apache.ibatis.annotations.update; / *** Die folgenden Operationen 1 schreibt SQL in der Konfigurationsdatei, während Operationen 2 direkt angeben, dass die SQL -Anweisung mit Annotationen ausgeführt werden soll Public Blog SelectBlog (int ID); @Select ("SELECT * von t_blog wob public void InsertBlog (Blog -Blog); @Insert ("In t_blog (title, content, Eigentümer) Werte (#{title},#{content},#{Eigentümer})") public void InsertBlog2 (Blog -Blog); public void UpdateBlog (Blog -Blog); @Update ("T_BLOG set title =#{title}, content =#{content}, Eigentümer =#{Besitzer} wob public void Deleteblog (int id); @Delete ("aus t_blog löschen wob öffentliche Liste <blog> selectAll (); @Select ("aus t_blog") publiclist <blog> selectAll2 (); öffentliche Liste <blog> fuzzyQuery (String -Titel); @Select ("SELECT * aus T_BLOG, wobei der Titel wie/"%/"#{title}/"%/"") publiclist <blog> fuzzyQuery2 (String -Titel); }
Test1.java
Paket com.tiantian.mybatis.test; importieren java.util.list; import org.apache.ibatis.session.sqlSession; import org.junit.test; import com.tiantian.mybatis.model.blog; import com.tiantian.mybatis.util.util; / *** Diese Operationsreihe erfolgt durch das Schreiben von SQL in der Konfigurationsdatei und die Verwendung von SQLSession for Operation* @Author Andy**/ public class test1 {/ *** Record add*/ @test public void testInsertblog () {SQLSession Session = util.getSQLSessionfactory ().).).).); Blog blog = new Blog (); Blog.Settitle ("Chinese"); Blog.SetContent ("Wie viele Träume sind seit fünftausend Jahren im Wind und Regen versteckt"); Blog.Setowner ("Daily"); Session.insert ("com.tiantian.mybatis.model.blogmapper.insertblog", Blog); Session.Commit (); Sitzung.CLOSE (); } / *** einen einzelnen Datensatz abfragen* / @test public void testSelectone () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); Blog blog = (Blog) session.selectone ("com.tiantian.mybatis.model.blogmapper.Selectblog", 8); System.out.println (Blog); Sitzung.CLOSE (); } / *** Datensatz ändern* / @test public void testupdateblog () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); Blog blog = new Blog (); blog.setid (7); // Die ID des Blogs, der modifiziert werden muss, blog.settitle ("Chinese 2"); // title blog.setContent ("Yellow Face, Black Eyes, unverändertes Smile"); // modifizieren content blog.setowner ("Tag 2"); // Eigentümer -Sitzung. Blog); Session.Commit (); Sitzung.CLOSE (); } / *** alle Datensätze abfragen* / @test public void testSelectall () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); Liste <blog> blogs = session.selectList ("com.tiantian.mybatis.model.blogmapper.Selectall"); für (Blog Blogs: Blogs) system.out.println (Blog); Sitzung.CLOSE (); } / *** fuzzy query* / @test public void testfuzzyQuery () {sqlSession Session = util.getSQLSessionFactory (). OpenSession (); String title = "China"; Liste <blog> blogs = session.selectList ("com.tiantian.mybatis.model.blogmapper.fuzzyQuery", Titel); für (Blog Blogs: Blogs) system.out.println (Blog); Sitzung.CLOSE (); } / *** Datensatz löschen* / @test public void testDeleteblog () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); Session.delete ("com.tiantian.mybatis.model.blogmapper.deleteblog", 8); Session.Commit (); Sitzung.CLOSE (); }}
Test2.java
Paket com.tiantian.mybatis.test; importieren java.util.list; import org.apache.ibatis.session.sqlSession; import org.junit.test; import com.tiantian.mybatis.model.blog; import com.tiantian.mybatis.model.blogmapper; import com.tiantian.mybatis.util.util; / *** Diese Operationsreihe soll SQL -Anweisungen in die Konfigurationsdatei* schreiben und dann durch die entsprechende Mapper -Schnittstelle arbeiten. Blog blog = new Blog (); Blog.Settitle ("Chinese"); Blog.SetContent ("Wie viele Träume sind seit fünftausend Jahren im Wind und Regen versteckt"); Blog.Setowner ("Daily"); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); BlogMapper.insertblog (Blog); Session.Commit (); Sitzung.CLOSE (); } / *** einen einzelnen Datensatz abfragen* / @test public void testSelectone () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Blog blog = BlogMapper.SelectBlog (7); System.out.println (Blog); Sitzung.CLOSE (); } / *** Datensatz ändern* / @test public void testupdateblog () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); Blog blog = new Blog (); blog.setId (9); // Die ID des Blogs, der modifiziert werden muss, blog.settitle ("Chinese 2"); // title blog.setContent ("Yellow Face, Black Eyes, unverändertes Lächeln"); // Content blog modifizieren. BlogMapper.UpdateBlog (Blog); Session.Commit (); Sitzung.CLOSE (); } / *** alle Datensätze abfragen* / @test public void testSelectall () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Liste <blog> blogs = blogmapper.Selectall (); für (Blog Blogs: Blogs) system.out.println (Blog); Sitzung.CLOSE (); } / *** fuzzy query* / @test public void testfuzzyQuery () {sqlSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); String title = "China"; Liste <blog> blogs = blogmapper.fuzzyQuery (Titel); für (Blog Blogs: Blogs) system.out.println (Blog); Sitzung.CLOSE (); } / *** Datensatz löschen* / @test public void testDeleteblog () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); BlogMapper.Deleteblog (10); Session.Commit (); Sitzung.CLOSE (); }}
Test3.java
Paket com.tiantian.mybatis.test; importieren java.util.list; import org.apache.ibatis.session.sqlSession; import org.junit.test; import com.tiantian.mybatis.model.blog; import com.tiantian.mybatis.model.blogmapper; import com.tiantian.mybatis.util.util; / ** * Diese Operationsreihe wird unter Verwendung der Mapper -Schnittstelle * durchgeführt, aber ihre entsprechende SQL -Anweisung wird auf der entsprechenden Methode im Mapper durch die entsprechende * Annotation * @Author Andy * */ public class test3 {/ ** * New Record */ @Test Public void testinsert () {) sqlSession Session (). BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Blog blog = new Blog (); blog.settitle ("title2"); blog.setContent ("content2"); Blog.Setowner ("Eigentümer2"); BlogMapper.insertblog2 (Blog); Session.Commit (); Sitzung.CLOSE (); } / *** einen einzelnen Datensatz finden* / @test public void testSelectone () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Blog blog = BlogMapper.SelectBlog2 (1); System.out.println (Blog); Sitzung.CLOSE (); } / *** Finden Sie mehrere Datensätze und geben Sie das Ergebnis als Sammlung zurück* / @test public void testSelectall () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Liste <blog> blogs = blogmapper.selectAll2 (); für (Blog Blogs: Blogs) system.out.println (Blog); Sitzung.CLOSE (); } / *** einen Datensatz ändern* / @test public void testupdate () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Blog blog = new Blog (); blog.setid (3); blog.settitle ("title3"); blog.setContent ("content3"); Blog.Setowner ("Eigentümer3"); BlogMapper.UpdateBlog2 (Blog); Session.Commit (); Sitzung.CLOSE (); } / *** Datensatz löschen* / @test public void testDelete () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); BlogMapper.Deleteblog2 (5); Session.Commit (); Sitzung.CLOSE (); } @Test public void testfuzzyQuery () {SQLSession Session = util.getSQLSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (BlogMapper.Class); Liste <blog> blogs = blogmapper.fuzzyQuery2 ("China"); für (Blog Blogs: Blogs) system.out.println (Blog); Sitzung.CLOSE (); }}Entsprechende Erstellung von Tabellenerstellung:
Tabelle `t_blog` (` id` int (11) nicht null auto_increment, `title` varchar (255) Standardnull,` content` varchar (255) Standardnull, `Besitzer` varchar (50) Standardnull, Primärschlüssel (` id`))