Kürzlich fragte mich ein Freund, ob MyBatis die Funktion hat, automatisch Tabellenstrukturen zu erstellen, da sie schon einmal zur Verwendung von Hibernate verwendet wurden. Natürlich sind sie der Ansicht, dass die Tabelle nach dem Start des Systems automatisch erstellt werden kann, indem sie auf Wetten oder Schreiben von Zuordnungsdateien in Entitätsklassen erstellt werden.
Ich kann ihm nur mit Bedauern sagen, dass MyBatis diese Funktion nicht hat. Wenn ich seine Gleichgültigkeit sehe, kann ich ihn nur trösten, dass wir es selbst entwickeln können, selbst wenn es keine solche Funktion gibt, sie selbst entwickeln ~~ ~~
Es gibt also das folgende System, das geöffnet wurde und Sie runterkommen und einen Blick darauf werfen können ~~
Mybatis_buildtable_v0.2
https://git.oschina.net/Sunchenbin/mybatis_buildtable_v0.2.git
Die Projektarchitektur verwendet SpringMVC+MyBatis+Maven. Die Funktion besteht darin, Tabellen zu erstellen und Tabellenstrukturen durch Konfigurieren von Modellanmerkungen zu ändern. Derzeit wird nur MySQL unterstützt. Da der Fokus darauf liegt, die Funktion der automatischen Tischerstellung von MyBatis hervorzuheben, müssen Sie also nicht zu viel über das Framework nachdenken.
Verwendungsspezifikation:
Der Kerncode befindet sich in Modell-Store-Repo
1. Das Sysmysqlcolumns.java -Objekt ist mit dem MySQL -Datentyp konfiguriert. Je mehr Typen hier konfiguriert sind, desto mehr Typen können Sie beim Erstellen der Tabelle verwenden.
2.LengthCount.java ist eine benutzerdefinierte Annotation, mit der der Datentyp in sysmysqlcolumns.java konfiguriert wird. Um diesen Typ zu markieren, erfordert mehrere Längen, wie z. B. DateTime/Varchar (1)/Dezimal (5,2), 0, 1, 2.
3.Column.java ist auch eine benutzerdefinierte Annotation, mit der Felder im Modell markiert werden. Als Grundlage für das Erstellen von Tabellen, wenn nicht markiert, wird es nicht gescannt. Es gibt mehrere Attribute, mit denen die Einstellungen von Eigenschaften wie Feldname, Feldtyp, Länge usw. festgelegt werden. Weitere Informationen finden Sie in den Kommentaren zum Code.
4.Tabell.java ist auch eine benutzerdefinierte Annotation, mit der das Modellobjekt markiert wird, und verfügt über einen Attributnamen, mit dem der Tabellenname nach dem Erstellen des Modells die Tabelle festgelegt wird. Wenn die Annotation nicht festgelegt ist, wird das Modell nicht gescannt.
OK, nachdem das System gestartet wurde, wird automatisch die Methode createMysQLTable () von sysmysqlreateTableManagerImpl.java aufgerufen. Das ist richtig, dies ist die Kernmethode, die für das Erstellen, Löschen und Ändern von Tabellen verantwortlich ist.
Model-Store-Frontend/Ressourcen/config/autocreatetable.Properties
Sie werden feststellen, dass es eine solche Konfigurationsdatei gibt, die zwei Konfigurationen enthält
1.Mybatis.table.auto = Update
2.Mybatis.model.pack = com.sunchenbin.store.model
Dieses System bietet zwei Modi:
1. Wenn mybatis.table.auto = Erstellen, werden nach dem Start des Systems alle Tabellen gelöscht, und dann wird die Tabelle gemäß der im Modell konfigurierten Struktur umgebaut. Dieser Vorgang zerstören die Originaldaten.
2. Wenn mybatis.table.auto = update, bestimmt das System automatisch, welche Tabellen neu erstellt werden, welche Felder im Typ geändert werden müssen, welche Felder gelöscht werden müssen und welche Felder hinzugefügt werden müssen. Dieser Vorgang zerstört nicht die Originaldaten.
3.Mybatis.Model.Pack Diese Konfiguration wird verwendet, um den Paketnamen des Objekts zu konfigurieren, das zum Erstellen der Tabelle gescannt werden soll.
Das System ist so konfiguriert, dass sie mit Maven beginnen. Das Web hängt von Repo, Frontend und Mobile ab, der vom Web abhängt. Um Frontend und Mobile auszuführen, müssen Sie zuerst das Web und das Repo installieren
Wie ich das Projekt mit Maven starten kann ... werde ich nicht mehr sagen.
Das obige ist die vollständige Beschreibung der automatischen Erstellung von Tabellen und der Aktualisierung der Tabellenstruktur, die Ihnen vom Editor vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!