Bauen von SQLSessionFactory aus XML
Das Erstellen einer Instanz von SQLSessionFactory aus einer XML -Datei ist sehr einfach. Hier empfehlen wir, die Ressourcendatei unter dem Klassenpfad zu verwenden, um sie zu konfigurieren.
String ressourcen = "org/mybatis/Beispiel/Konfiguration.xml"; Reader reader = ressourcen.getResourceAsReader (Ressource); SQLMapper = new SQLSessionFactoryBuilder (). Build (Leser);
Die XML -Konfigurationsdatei enthält die Kerneinstellungen für das MyBatis -System, einschließlich der Datenquelle für die Erfassung der Datenbankverbindungsinstanz und den Transaktionsmanager, der den Umfang und die Steuerung der Transaktion bestimmt. Als Beispiel:
<? <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </umwelt> </Umgebungen> <mappers> <mapper ressourcen = "org/mybatis/Beispiel/blogmapper.xml"/> </mappers> </configuration>Natürlich gibt es in der XML -Konfigurationsdatei viele konfigurierbare Dinge, und das obige Beispiel zeigt auf den kritischsten Teil.
Holen Sie sich SQLSession von SQLSessionFactory
Nachdem wir bereits wissen, wie wir das SQLSessionFactory -Objekt basierend auf derselben Offenbarung erhalten, können wir eine Instanz von SQLSession erhalten. Das SQLSession -Objekt enthält vollständig alle Methoden zur Durchführung von SQL -Operationen mit einer Datenbank als Hintergrund. Sie können die SQLSession -Instanz verwenden, um kartierte SQL -Anweisungen direkt auszuführen. Zum Beispiel:
SQLSession Session = SQLMapper.OpenSession (); try {blog = (blog) session.selectone ("org.mybatis.example.blogmapper.Selectblog", 101); } endlich {Session.close (); }Jetzt gibt es einen einfacheren Weg. Verwenden Sie Schnittstellen, die Parameter und SQL -Anweisungen vernünftigerweise beschreiben, um Werte (z. B. BlogMapper.Class) zurückzugeben, sodass es jetzt einfacher und sicherer Code ist, ohne anfälligen Literalen und Konvertierungsfehlern anfällig. Zum Beispiel:
SQLSession Session = SQLSessionFactory.OpenSession (); try {blogmapper mapper = session.getMapper (blogmapper.class); Blog blog = mapper.selectBlog (101); } endlich {Session.close (); } Erforschen Sie die kartierten SQL -Anweisungen
Hier ist ein Beispiel für XML -Zuordnungsanweisungen, die den Ruf des SQLSession -Objekts im obigen Beispiel erfüllen sollten.
<? namespace = "org.mybatis.example.blogmapper"> <select id = "selectBlog" parameterType = "int" resultType = "blog"> aus dem Blog, wobei ID = #{ID} </select> </mapper>Im Namespace "com.mybatis.example.blogMapper" definiert es eine Zuordnungsanweisung mit dem Namen "SelectBlog", mit der Sie die Zuordnungserklärung mit dem voll qualifizierten Namen aufrufen können.
Blog blog = (Blog) session.selectone ("org.mybatis.example.blogmapper.Selectblog", 101); Die folgenden Anrufe haben jedoch mehr Vorteile:
Die Zuordnungschnittstelle entspricht dem Befehlsraum für die Zuordnung der XML -Datei, und die Schnittstellenmethode entspricht der ID der in der Mapping XML -Datei definierten SQL -Karte. ????????????????
BlogMapper mapper = session.getMapper (BlogMapper.Class); Blog blog = mapper.selectBlog (101);
Erstens basiert es nicht auf Text, daher ist es sicherer. Zweitens können Sie, wenn Ihre IDE eine Code -Abschlussfunktion hat, sie verwenden, um die zugeordneten SQL -Anweisungen zu manipulieren. Drittens ist es nicht erforderlich, Typ Conversion zu besetzen. Gleichzeitig kann die BlogMapper -Schnittstelle einfach gehalten werden und der Rückgabewerttyp ist sehr sicher (der Parametertyp ist auch sehr sicher).