maven插件--代码生成器,适用所有maven项目


声明:本文转载自https://my.oschina.net/u/2526698/blog/1556347,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

自己写的代码生成器,保证好用!

优点:

1,语法简单,即freeMarker语法。

2,配置简单,maven命令生成,操作简单

3,可扩展,自定义模板

缺点:

1.刚写的,难免有bug,不过发现会及时改。

2.单线程创建文件,后面考虑多线程,不过影响不大,都很快创建。

使用步骤:

第一步:创建文件夹

项目中增加mbg/templates等,如下图所示:

提示:文件夹的位置可以自己适情况调整位置,只要generatorConfig.xml对应的配置路径对即可。

其中

1,tramp-generator-config_1_0.dtd文件是对generatorConfig.xml配置文件的规范约束。

2,*.ftl文件就是我们想生成的模板文件,使用了freeMarker,所以只要了解freeMarker便可以随意自定义模板。插件内置了属性,可直接使用,具体属性下面说。

3,generatorConfig.xml是插件的核心配置文件,具体描述看下面代码:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration SYSTEM "dtd\tramp-generator-config_1_0.dtd"> <generatorConfiguration>     <!--mysql数据库相关配置,目前只支持mysql-->     <dataSource url="jdbc:mysql://127.0.0.1:3306/mbg"                 user="root" password="123456" driverClassName="com.mysql.jdbc.Driver"/>     <!-- 数据库字段类型与java类型对应关系,主要用于生成实体类时使用,可根据项目情况配置对应javaType-->     <types>         <type jdbcType="TINYINT" javaType="Integer"></type>         <type jdbcType="INT" javaType="Integer"></type>         <type jdbcType="INTEGER" javaType="Integer"></type>         <type jdbcType="SMALLINT" javaType="Integer"></type>         <type jdbcType="NUMERIC" javaType="Integer"></type>         <type jdbcType="DECIMAL" javaType="BigDECIMAL"></type>         <type jdbcType="BIGINT" javaType="Long"></type>         <type jdbcType="FLOAT" javaType="Float"></type>         <type jdbcType="DOUBLE" javaType="Double"></type>         <type jdbcType="CHAR" javaType="String"></type>         <type jdbcType="VARCHAR" javaType="String"></type>         <type jdbcType="TEXT" javaType="String"></type>         <type jdbcType="DATE" javaType="Date"></type>         <type jdbcType="DATETIME" javaType="Date"></type>         <type jdbcType="TIME" javaType="Timestamp"></type>         <type jdbcType="TIMESTAMP" javaType="Timestamp"></type>     </types>    <!-- 模板集合,path为模板目录路径-->     <templates path="mbg/templates">         <!--模板,name:模板名称,tootPath:根目录(如:resources,java,test等),path:模板生成的文件所要存放的路径-->         <template name="BaseMapper.xml.ftl" rootPath="resources" path="mapper.base"></template>         <template name="Mapper.xml.ftl" rootPath="resources" path="mapper"></template>         <template name="plh.java.ftl" rootPath="java" path="com.tramp.basic.entity"></template>         <template name="Service.java.ftl" rootPath="java" path="com.tramp.basic.service"></template>         <template name="Dao.java.ftl" rootPath="java" path="com.tramp.basic.dao"></template>         <template name="BaseDao.java.ftl" rootPath="java" path="com.tramp.basic.dao.Base"></template>     </templates>     <!--数据库表集合-->     <tables>         <!--数据库表,name:数据库中的表名,prefix:表前缀,overwrite:是否覆盖代码,默认false-->         <table name="mbg_test" prefix="it_" overwrite="true"/>     </tables> </generatorConfiguration>

二,pom.xml增加插件配置

<plugin>     <groupId>org.codehaus.mojo</groupId>     <artifactId>exec-maven-plugin</artifactId>     <version>1.5.0</version>     <executions>         <execution>             <id>default-cli</id>             <goals>                 <goal>java</goal>             </goals>         </execution>     </executions>     <configuration>         <includePluginDependencies>true</includePluginDependencies>         <cleanupDaemonThreads>false</cleanupDaemonThreads>         <arguments>             <argument>${basedir}/mbg/generatorConfig.xml</argument>         </arguments>         <mainClass>com.tramp.generator.Runner</mainClass>     </configuration>     <dependencies>         <dependency>             <groupId>tramp.generator</groupId>             <artifactId>core</artifactId>             <version>1.0-SNAPSHOT</version>             <type>jar</type>         </dependency>     </dependencies> </plugin>

三,生成文件

执行maven命令:exec:java即可

四:内置属性

大家可以根据自己项目情况配置对应模板,几分钟就可以配置好啦,不懂freeMarker的花几分钟时间看看,基本够用了。下面贴出插件内置的数据,可以直接拿来用。

以user_addr数据库表为例:有link_mobile属性,类型VARCHAR,注释为:联系电话

属性名 属性值  
className UserAddr  
variableName userAddr  
tableName user_addr  
table

 

属性名 属性值
name user_addr
columnList
属性名 属性值
name link_mobile
className LinkMobile
variableName linkMobile
type VARCHAR
javaType String(配置文件中配置的)

 

 

 

下面贴出模板代码片段供参考:

<resultMap id="baseResultMap" type="com.tramp.basic.entity.${className}">     <id column="id" jdbcType="VARCHAR" property="id" /> <#list table.columnList as field> <#if field.name != 'id'>     <result column="${field.name}" property="${field.variableName}" jdbcType="${(field.type=='DATETIME')?string('TIMESTAMP',field.type)}"/> </#if> </#list> </resultMap> <sql id="baseColumnList">     <#list table.columnList as field>${field.name}<#if field_has_next>,</#if></#list> </sql> <select id="get" parameterType="java.lang.String" resultMap="baseResultMap">     select <include refid="baseColumnList"/>     from ${table.name}     where id = ${'#'}{id,jdbcType=VARCHAR} </select> <delete id="delete" parameterType="java.util.Collection">     delete from ${table.name}     where 1=1 and id in     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">     ${'#'}{item,jdbcType=VARCHAR}     </foreach> </delete>

最后,由于代码还不够好看(刚这周写的,比较粗糙),先不放代码了,等再重新整理放出。需要使用的,可以加qq群交流,下载,QQ:461964997

本文发表于2017年10月26日 10:34
(c)注:本文转载自https://my.oschina.net/u/2526698/blog/1556347,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2413 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1