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

自己写的代码生成器,保证好用!代码整理中,后面放代码,可先加群下载jar使用:QQ:461964997

优点:

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

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

3,模板暴露,可扩展自定义模板

缺点:

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

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

使用步骤:

第一步:创建文件夹

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

205713_1y5Q_2526698.png

提示:文件夹的位置可以自己适情况调整位置,只要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>

    <!--一些信息,可不填,原貌出现在freeMarker同名属性中-->
    <info author="mbg" remark="mbg生成"/>

    <!--mysql数据库相关配置,目前只支持mysql-->
    <dataSource url="jdbc:mysql://127.0.0.1:3306/test"
                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),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:数据库中的表名,
        requestBasePath:请求路径,出现在freeMarker同名属性中,可用于controller
        methods:方法名,英文逗号隔开,以List集合形式出现在freeMarker同名属性中
        prefix:表前缀
        overwrite:
        是否覆盖代码,默认false-->
        <table name="mbg_test" requestBasePath="/user/addr"/>
    </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>genetator-core</artifactId>
            <version>1.0-SNAPSHOT</version>
            <type>jar</type>
        </dependency>
    </dependencies>
</plugin>

三,生成文件

执行maven命令:exec:java即可

四:内置属性

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

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

属性名属性值 
classNameUserAddr 
variableNameuserAddr 
tableNameuser_addr 
requestBasePath/user/addr(配置文件配置) 
methods方法集合(配置文件配置) 
author作者(配置文件配置) 
remark配置文件配置 
table

 

属性名属性值
nameuser_addr
columnList
属性名属性值
namelink_mobile
classNameLinkMobile
variableNamelinkMobile
typeVARCHAR
remark联系电话(数据库中的注释)
javaTypeString(配置文件中配置的)

 

 

 

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

<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

转载于:https://my.oschina.net/u/2526698/blog/1556347

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值