Récemment, un ami m'a demandé si Mybatis a la fonction de créer automatiquement des structures de table, car il a été habitué à utiliser Hibernate auparavant. Naturellement, ils croient qu'en configurant des fichiers de mappage de paris ou d'écriture sur les classes d'entités, le tableau peut être créé automatiquement après le début du système.
Je ne peux que lui dire avec regret que Mybatis n'a pas cette fonction. Voyant son indifférence, je ne peux que le réconforter que même s'il n'y a pas une telle fonction, nous pouvons le développer nous-mêmes ~~
Il y a donc le système suivant, qui a été ouvert et vous pouvez descendre et jeter un œil ~~
Mybatis_buildtable_v0.2
https://git.oschina.net/sunchenbin/mybatis_buildtable_v0.2.git
L'architecture du projet utilise SpringMVC + Mybatis + Maven. La fonction consiste à créer des tables et à modifier les structures de table en configurant les annotations du modèle. Actuellement, seul MySQL est pris en charge. Parce que l'objectif est de mettre en évidence la fonction de la création de table automatique de MyBatis, il n'est donc pas nécessaire de trop penser au cadre.
Spécification d'utilisation:
Le code central est dans Model-Store-Repo
1. L'objet sysmysqlcolumns.java est configuré avec le type de données MySQL. Plus les types sont configurés ici, plus vous pouvez utiliser de types lors de la création du tableau.
2.LengthCount.java est une annotation personnalisée utilisée pour marquer le type de données configuré dans sysmysqlcolumns.java. Pour marquer ce type, il faut plusieurs longueurs, telles que Datetime / Varchar (1) / décimal (5,2), respectivement, 0, 1, 2, respectivement.
3.Column.java est également une annotation personnalisée, utilisée pour marquer les champs du modèle. Comme base pour la création de tables, s'il n'est pas marqué, il ne sera pas numérisé. Plusieurs attributs sont utilisés pour définir les paramètres des propriétés telles que le nom du champ, le type de champ, la longueur, etc. pour plus de détails, veuillez vous référer aux commentaires sur le code.
4.Table.java est également une annotation personnalisée, utilisée pour marquer l'objet modèle, et a un nom d'attribut, qui est utilisé pour définir le nom du tableau après que le modèle a généré le tableau. Si l'annotation n'est pas définie, le modèle ne sera pas numérisé.
Ok, après le début du système, il appellera automatiquement la méthode CreateMysQlTable () de SysmysqlcreateTableManageRimp.java. C'est vrai, c'est la méthode de base, qui est responsable de la création, de la suppression et de la modification des tables.
modèle-magasin-frontend / ressources / config / autocreatable.properties
Vous constaterez qu'il existe un tel fichier de configuration, qui a deux configurations
1.MyBatis.Table.Auto = Update
2.mybatis.model.pack = com.sunchenbin.store.model
Ce système fournit deux modes:
1. Lorsque MyBatis.Table.Auto = Create, après le début du système, toutes les tables seront supprimées, puis le tableau sera reconstruit en fonction de la structure configurée dans le modèle. Cette opération détruira les données d'origine.
2. Lorsque MyBatis.Table.Auto = Update, le système déterminera automatiquement quelles tables sont nouvellement créées, quels champs doivent être modifiés en type, quels champs doivent être supprimés et quels champs doivent être ajoutés. Cette opération ne détruira pas les données d'origine.
3.Mybatis.model.pack Cette configuration est utilisée pour configurer le nom du package de l'objet à analyser pour créer la table.
Le système est configuré pour commencer à utiliser Maven. Le Web dépend de Repo, Frontend et Mobile dépendent du Web. Par conséquent, pour exécuter le frontend et le mobile, vous devez d'abord installer le Web et les repo
Quant à la façon de démarrer le projet avec Maven ... Je n'en dirai pas plus.
Ce qui précède est la description complète de la création automatique de MyBatis de tables et de mise à jour de la structure de table qui vous est présentée par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!