Explication détaillée de la conception et de la mise en œuvre du générateur de code de modèle Web Java
黄舟
Libérer: 2017-03-18 10:32:23
original
2332 Les gens l'ont consulté
Cause
Dans le projet, de nombreux codes Meta, Dao et Service doivent être écrits sur la base de tables de base de données, et beaucoup d'entre eux sont répétitifs et fastidieux. Par conséquent, s'il existe un générateur pour le code du modèle, l'efficacité du développement peut être améliorée dans une certaine mesure.
Cible
Générateur configurable pour générer des codes de modèles de couches Dao, Meta et Service dans les projets Web Java.
Cette classe est responsable de l'analyse des commandes de ligne de commande, de l'analyse des fichiers de configuration et de l'encapsulation des éléments requis données vers la classe de génération de code.
Les commandes analysables sont -config<a href="http://www.php.cn/wiki/1313.html" target="_blank">file<code>-config<a href="http://www.php.cn/wiki/1313.html" target="_blank">file</a> : Précisez le chemin où se trouve le fichier de configuration et -overwrite : s'il faut réécrire le fichier cible.
Les éléments de configuration du fichier de configuration sont :
//Java SQL 驱动所在路径(暂未使用)
private static final String CLASS_PATH_ENTRY = "class.path.entry";
//Java 驱动类型(暂未使用)
private static final String DRIVER_CLASS = "driver.class";
//数据库地址
private static final String CONNECTION_URL = "connection.url";
//数据库用户名
private static final String USER_ID = "user.id";
//数据库密码
private static final String USER_PASSWORD = "user.password";
//模型生成地址
private static final String JAVA_MODEL_PACKAGE = "java.model.package";
//SQL生成地址
private static final String SQL_MAPPING_PACKAGE = "sql.mapping.package";
//项目地址
private static final String PROJECT = "project";
//数据表名
private static final String TABLE_NAME = "table.name";
//模型名称
private static final String DOMAIN_OBJECT_NAME = "domain.object.name";
Copier après la connexion
Classe de génération de code CodeGenerator
Cette classe est responsable de la connexion à la base de données et interrogeant les informations de la table de données, mappe les types SQL aux types Java et encapsule les données requises dans la classe de génération de fichiers.
convertit enfin les informations SQL en informations Java via le mappage de types (JavaTypeResolver) en Map<Integer, JdbcTypeInformation> typeMap et la conversion de dénomination de cas de chameau (StringUtils) en getCamelCaseString.
Classe de génération de fichiers FileGenerator
Cette classe combine des données dans un fichier de code cible via le FreeMarkermoteur de modèles.
Lors des tests, Class.class.getClass().getResource("/").getPath();Cette méthode peut obtenir le répertoire racine du projet, mais en test, cette méthode est valide lorsque le package Jar est généré. Par conséquent, avant de générer le package Jar, vous devez modifier cette ligne en new File("").getAbsolutePath(); pour obtenir le chemin de génération.
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn