maven插件--代码生成器,适用所有maven项目
2017-10-30 11:21
323 查看
摘要: 在日常开发中,经常复制粘贴,再修改代码,工作量大,但又不得不做。在网上看到mybatis generator插件,初步看了下,并不适合自己的项目,于是决定自己写一个代码生成器maven插件,目前只支持mysql数据库。
自己写的代码生成器,保证好用!代码整理中,后面放代码,可先加群下载jar使用:QQ:461964997
优点:
1,语法简单,即freeMarker语法。
2,配置,操作简单,maven命令生成
3,模板暴露,可扩展自定义模板
缺点:
1.刚写的,难免有bug,不过发现会及时改。
2.单线程创建文件,后面考虑多线程,不过影响不大,都很快创建。
使用步骤:
![](https://static.oschina.net/uploads/space/2017/1025/205713_1y5Q_2526698.png)
提示:文件夹的位置可以自己适情况调整位置,只要generatorConfig.xml对应的配置路径对即可。
其中
1,tramp-generator-config_1_0.dtd文件是对generatorConfig.xml配置文件的规范约束。
2,*.ftl文件就是我们想生成的模板文件,使用了freeMarker,所以只要了解freeMarker便可以随意自定义模板。插件内置了属性,可直接使用,具体属性下面说。
3,generatorConfig.xml是插件的核心配置文件,具体描述看下面代码:
以user_addr数据库表为例:有link_mobile属性,类型VARCHAR,注释为:联系电话
下面贴出模板代码片段供参考:
最后,由于代码还不够好看(刚这周写的,比较粗糙),先不放代码了,等再重新整理放出。需要使用的,可以加qq群交流,下载,QQ:461964997
自己写的代码生成器,保证好用!代码整理中,后面放代码,可先加群下载jar使用:QQ:461964997
优点:
1,语法简单,即freeMarker语法。
2,配置,操作简单,maven命令生成
3,模板暴露,可扩展自定义模板
缺点:
1.刚写的,难免有bug,不过发现会及时改。
2.单线程创建文件,后面考虑多线程,不过影响不大,都很快创建。
使用步骤:
第一步:创建文件夹
项目中增加mbg/templates等,如下图所示:![](https://static.oschina.net/uploads/space/2017/1025/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,注释为:联系电话
属性名 | 属性值 | |||||||||||||||||||||
className | UserAddr | |||||||||||||||||||||
variableName | userAddr | |||||||||||||||||||||
tableName | user_addr | |||||||||||||||||||||
requestBasePath | /user/addr(配置文件配置) | |||||||||||||||||||||
methods | 方法集合(配置文件配置) | |||||||||||||||||||||
author | 作者(配置文件配置) | |||||||||||||||||||||
remark | 配置文件配置 | |||||||||||||||||||||
table |
|
<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
相关文章推荐
- 未安装m2e-scm和m2e-wtp插件如何从svn下载maven项目和在tomcat中部署
- maven如何将项目引用的所有jar包复制到lib文件夹内
- 用eclipse的m2eclipse插件,设置maven项目的依赖关系
- 使用Maven项目的appfuse插件构建 Struts2.0+Spring2.0+Hibernate项目
- 在Maven项目中使用tomcat插件来部署Web项目
- jenkins的安装配置,插件配置,安装插件,配置maven,jdk路径,配置安装插件,项目配置,自动构建配置
- 开发过程使用Tomcat Maven插件持续快捷部署Web项目
- 使用Maven插件maven-dependency-plugin拷贝所有依赖的jar和pom文件
- Java maven项目集成ueditor(百度本编辑器)插件详解
- Apache Maven项目提供的EJB插件详解
- Maven项目缺少eclipse自带的插件项目需要建立lib目录加上jar包,或者是已经生成有的, 然后 右键build path add libraries web app libraries
- Apache Maven项目提供的WAR插件详解
- 使用maven构建 ssm项目 tomcat7插件运行报错, Invalid byte tag in constant pool: 60
- 使用eclipse自带maven插件新建javaweb项目时报错处理方案
- 使用 Eclipse 的 Maven 2 插件开发一个 JEE 项目
- IDEA使用maven中tomcat插件启动项目乱码问题
- 使用Maven插件创建Web项目的详细步骤
- 用jetty插件运行maven项目 在eclipse中如何debug 调试程序
- 关于使用maven tomcat插件运行项目的问题
- Maven项目:PageHelper插件的使用