Java -API
Nachdem Sie nun wissen, wie Sie MyBatis konfigurieren und Mapping -Dateien erstellen, sind Sie bereit, Ihre Fähigkeiten zu verbessern. In MyBatis 'Java -API werden Sie die Anstrengungen ernten, die Sie unternommen haben. Wie Sie sehen werden, vereinfacht MyBatis im Vergleich zu JDBC Ihren Code stark und hält ihn einfach, leicht zu verstehen und zu warten. MyBatis 3 hat viele wichtige Verbesserungen eingeführt, um die SQL -Mapping zu verbessern.
MyBatis 3 basiert auf einer umfassenden und leistungsstarken Java -Konfigurations -API. Diese Konfigurations-API ist die Grundlage für die XML-basierte MyBatis-Konfiguration und auch die Grundlage für eine neue Annotations-basierte Konfiguration.
Anmerkungen bieten eine einfache Möglichkeit, einfache Zuordnungsanweisungen zu implementieren, ohne viel Overhead einzuführen.
Die entsprechenden Ziele und Beschriftungen von MyBatis Common Annotations sind in der Tabelle angezeigt:
| Anmerkung | Ziel | Entsprechende XML -Tags |
| @CacheNamesPace | Art | <Cache> |
| @CacheNamesPaceref | Art | <Cacheref> |
| @Results | Verfahren | <Eltr EREHTMAP> |
| @Ergebnis | Verfahren | <Eltrib> <Id> |
| @Eins | Verfahren | <Assoziation> |
| @Viele | Verfahren | <Kollektion> |
@Einfügen @Aktualisieren @Löschen | Verfahren | <Berein> <Pupdites> <Löte> |
@InsertProvider @UpdateProvider @DeletEProvider @SelectProvider | Verfahren | <Berein> <Pupdites> <Löte> <Selech> Ermöglicht die Erstellung von dynamischem SQL |
| @Param | Parameter | N / A |
| @Options | Verfahren | Eigenschaften von Zuordnungsanweisungen |
| @wählen | Verfahren | <Selech> |
Die Bedeutung gemeinsamer Anmerkungen von MyBatis:
@CacheNameSpace (size = 512): Definiert die Verwendung integrierter Caches in diesem Namespace
@Options (usEcache = true, flushcache = false, timeout = 10000): Optionsschalter für einige Abfragen
@Param ("ID"): Global qualifizierter Alias, die Position der Abfrageparameter in der SQL -Anweisung befindet sich nicht mehr in Form von 0, 1, 2, 3 ..., sequentielle Einweise, sondern der entsprechende Name, der hier definiert ist.
@Results ist ein Array mit @Result als Element. @Result repräsentiert die Zuordnungsbeziehung eines einzelnen Attributfeldes. ID = True bedeutet, dass das ID -Feld der Primärschlüssel ist. MyBatis wird die notwendigen Optimierungen während der Abfrage geben. Alle @Results im Array bilden eine Zuordnungsbeziehung eines einzelnen Datensatzes, während @Results eine Sammlung eines einzelnen Datensatzes ist. Darüber hinaus gibt es eine sehr wichtige Annotation @Resultmap, die @Results ähnelt
@Select ("Query Anweisung"), @Insert ("Anweisung"), @Update ("Aktualisierungsanweisung") und @Delete ("Anweisung") stellen Vorgänge zum Abfragen, Hinzufügen, Aktualisieren und Löschen von Daten dar.
Schauen wir uns als nächstes die Verwendung von Anmerkungen an.
(1) Verwendung regelmäßiger Anmerkungen (keine benutzerdefinierten Kartenvorgänge erforderlich):
Beispiel 1
//Add author @Insert("Insertinto Author(username,password,email,address,phone) " +"values(#{username},#{password},#{email},#{address},#{phone})")@Options(useGeneratedKeys=true,keyProperty="authId",flushCache= false, timeout = 10000)public voidaddAuthor(Author author); // Autor löschen @Delete ("DeleteFrom Autor wobei ID = #{id}")@options (flushcache = false, timeout = 10000) public voidDeletEAthor (@param ("id") int id); Tipp: Sie müssen einen Mapper registrieren, bevor Sie die Methode aufrufen:
SessionFactory.getConfiguration (). AddMapper (TestInteger.class);
Oder konfigurieren
Lassen Sie nach der Registrierung die Mapper -Schnittstelle normal aufrufen
(2) Wenn Sie die Karte anpassen müssen, können Sie die Ergebnisse der Ergebnisse verwenden:
Beispiel 2
// Alle Autoreninformationen @select ("ausgewählt * aus dem Autor") @option (Flushcache = false, timeout = 10000, usEcache = true) @Results (value = {@result (id = true, column = "id", property = "id"), @result (Property = "userername", columname = "username", @result ("Passwort". @Result(property="email",column="email"), @Result(property="address",column="address"), @Result(property="phone",column="phone") })public List<Author> findAuthors();//Query the information of a certain author @Select("select * from author where id =#{id}")@Options(flushCache = false, timeout = 10000, usecache = true) @Results (value = {@result (id = true, column = "id", property = "id"), @Result (Property = "Benutzername", column = "userername"), @result (Property = "Passwort", Spalte = "Passwort"), @result (Eigenschaft = "E -Mail", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "", "", "", "", "", "", "", "", "", "", "", "", "", "", @Result (Property = "Telefon", column = "Telefon")}) öffentlicher Autor findAuthorbyId (@param ("id") intid); Wenn die von mehreren Abfragen zurückgegebene Ergebnisstruktur gleich ist, können Sie @Resultmap verwenden, um die Rückkehrstruktur zu definieren. Mit dieser Annotation müssen Sie Ihr Ergebnismap in Ihrer Zuordnungsdatei konfigurieren. @Resultmap (value = "name") ist die resultMap -ID in der Zuordnungsdatei. Auf diese Weise müssen Sie Ihre Konfigurationsdatei in <mapPer> registrieren und @Resultmap in der Schnittstelle verwenden, um die Ergebnismap -ID in der Konfigurationsdatei wie folgt zu verweisen:
Beispiel 3
Selfmapper.xml
// Jede Datensatzzeile ist ein HashMap <resultMaptype = "java.util.hashMap" id = "selfmap"> <resultProperty = "n" column = "City_Name"/> ....... </resultMap>
Selfmapper.java:
@Select ("Select A.id, B.Name, C.State aus ............")@resultmap (value = "selfmap") öffentliche Liste <Sehmap> sel (); // Beachten Vollständiger Fall
Schnittstellencode
Paket com.obtk.dao; import Java.util.hashMap; importieren java.util.list; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.options; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.select; import com.obtk.entitys.studententity; public interface IStudentDao { @Insert("insert into Student(stuName,gender,age,address,deptIdd)"+ "values(#{stuName},#{gender},#{age},#{address},#{deptId})") @Options(useGeneratedKeys=true,keyProperty="stuId") int saveOne(StudentEntity stu); @Select ("SELECT * von student wob @Select ("SELECT * vom Schüler wobei Gender =#{qqq} und adress =#{Bereich}") @Results (// so lange wie die Konfiguration Eigenschaft Value = {@result (column = "gender", property = "sex")}) Liste <Studententity> queryByMany (hashmap "); // Universal Association Annotation -Konfiguration @select ("SELECT * Aus der inneren Abteilung von Student S Inner Jou. } Fall 1 Abfragen Sie ein Objekt ab
Paket com.obtk.test; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import com.obtk.dao.istudentdao; import com.obtk.entitys.studententity; import com.obtk.utils.mybatisutil; public class annoselectone {public static void main (String [] args) {SQLSession Session = null; SQLSessionFactory Factory = NULL; try {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // die SQL -Konfiguration in der Schnittstelle mit der Kernkonfigurationsdatei Factory.getConfiguration (). IStudentdao studao = session.getMapper (iStudentdao.class); Studententity stu = studao.querybyid (129); System.out.println (stu.getStuname ()+","+stu.getSex ()+","+stu.getAddress ()+","+stu.getStuid ()); } catch (Ausnahme e) {e.printstacktrace (); } endlich {mybatisutil.closenSession (); }}} Fall 2 Übergeben Sie mehrere Parameter und fragen Sie mehrere Objekte ab
Paket com.obtk.test; import Java.util.hashMap; importieren java.util.list; import Java.util.map; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import com.obtk.dao.istudentdao; import com.obtk.entitys.studententity; import com.obtk.utils.mybatisutil; öffentliche Klasse AnnoselectMany {public static void main (String [] args) {SQLSession Session = null; SQLSessionFactory Factory = NULL; try {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // die SQL -Konfiguration in der Schnittstelle mit der Kernkonfigurationsdatei Factory.getConfiguration (). IStudentdao studao = session.getMapper (iStudentdao.class); HashMap Parammap = new HashMap (); parammap.put ("qqq", "männlich"); Parammap.put ("Bereich", "Studentenwohnheim"); LIST <Stud StudyEntity> Stulist = Studao.queryByMany (Parammap); für (Studententity stu: stulist) {System.out.println (stu.getStuname ()+","+stu.getSex ()+","+stu.getAddress ()+","+stu.getstuid ()); }} catch (Ausnahme e) {e.printstacktrace (); } endlich {mybatisutil.closenSession (); }}} Fall 3 ein Objekt hinzufügen
Paket com.obtk.test; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import com.obtk.dao.istudentdao; import com.obtk.entitys.studententity; import com.obtk.utils.mybatisutil; public class annosavetest {public static void main (String [] args) {SQLSession Session = null; SQLSessionFactory Factory = NULL; try {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // Die SQL -Konfiguration in der Schnittstelle mit der Kernkonfigurationsdatei Factory.getConfiguration (). IStudentdao studao = session.getMapper (iStudentdao.class); Studententity Stu = New Studententity ("testc#", "männlich", 21, "pluto"); stu.setDeptidd (10); int result = studao.saveone (stu); Session.Commit (); System.out.println ("erfolgreich speichern:"+stu.getStuid ()); } catch (Ausnahme e) {e.printstacktrace (); } endlich {mybatisutil.closenSession (); }}}Fall 4 Verwenden Sie Hashmap für Association -Abfrage
Paket com.obtk.test; import Java.util.hashMap; importieren java.util.list; import Java.util.map; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import com.obtk.dao.istudentdao; import com.obtk.entitys.studententity; import com.obtk.utils.mybatisutil; public class annojoinqnn {public static void main (String [] args) {sqlSession Session = null; SQLSessionFactory Factory = NULL; Versuchen Sie {// 4. Session Session = mybatisutil.getSession () erhalten; factory = mybatisutil.getFactory (); // die SQL -Konfiguration in der Schnittstelle mit der Kernkonfigurationsdatei Factory.getConfiguration (). IStudentdao studao = session.getMapper (iStudentdao.class); HashMap Parammap = new HashMap (); Parammap.put ("Sex", "männlich"); Parammap.put ("Deptname", "Computer System"); // 5. Ausführen von Anweisungsliste <Hashmap> stulist = studao.queryByqnn (Parammap); für (Hashmap theObj: stulist) {System.out.println (theobj.get ("stuid")+","+theobj.get ("Geschlecht")+","+theobj.get ("Stuname")+","+theobj.get ("Abteilungname"); }} catch (Ausnahme e) {e.printstacktrace (); } endlich {mybatisutil.closenSession (); }}}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.