代码生成器
来源:互联网 发布:mac桌面壁纸 编辑:程序博客网 时间:2024/04/30 03:49
code-generator是一个java版的代码生成器,它具有以下功能:
支持从数据库根据数据模型从模板文件生成各种不同的代码。
支持直接从sql文件生成代码,该方式不需要连接数据库,只要有建表语句即可,建表语句仅支持mysql语法,其他数据库的建表语句未测试过。
支持单表生成或者批量生成。
支持从数据库导出数据,支持导出指定表的数据,可导出sql格式,csv格式和自定义格式。
下载地址: https://github.com/xuesong123
1. 单表生成
单击要生成的表名,右边显示该表的结构,字段类型和映射类型,可以手动编辑生成的目标类型。2. 批量生成
在项目初期,可以一次生成所有的代码。单击某个连接下的Tables或者Views,右边显示所有的表或者视图。
勾选要生成的表,然后单击批量生成,即可生成所有的代码。
3. 数据库连接配置
在datasource.xml指定连接, 可以配置多个,配置之后,在连接页面将显示所有配置的数据库连接.
支持任何类型的数据库。
4. 模板定义
支持任意数量的模板,在template.xml中配置,需要指定模板路径和生成路径。
<!-- model template --> <template name="modelTemplate" template="/skin/model.html" outputPath="webapp/gen/java/com/skin/model/${table.className}.java" enabled="true"> <parameter name="packageName" value="com.skin.model" description=""/> </template> <!-- daoItfc template --> <template name="daoItfcTemplate" template="/skin/daoItfc.html" outputPath="webapp/gen/java/com/skin/dao/${table.className}Dao.java" enabled="true"> <parameter name="packageName" value="com.skin.dao" description=""/> </template> <!-- daoImpl template --> <template name="daoImplTemplate" template="/skin/daoImpl.html" outputPath="webapp/gen/java/com/skin/dao/ibatis/${table.className}DaoIBatis.java" enabled="true"> <parameter name="packageName" value="com.skin.dao.ibatis" description=""/> </template> <!-- manager template --> <template name="managerTemplate" template="/skin/manager.html" outputPath="webapp/gen/java/com/skin/service/${table.className}Manager.java" enabled="true"> <parameter name="packageName" value="com.skin.service" description=""/> </template> <!-- sqlMap template --> <template name="sqlMapTemplate" template="/skin/sqlMap.html" outputPath="webapp/gen/sqlmaps/${table.className}SQL.xml" enabled="true"/>
5. 生成文件浏览
基于web方式的文件浏览器, 可以查看和下载已经生成的代码。如果是在本地运行,直接通过资源浏览器即可查看。
6. 模板文件
模板文件采用jstl语法编写, 使用自己开发的ayada模板引擎运行。
package ${modelPackageName};import java.io.Serializable;import java.util.Date;/** * <p>Title: ${modelClassName}</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2006</p> * @author xuesong.net * @version 1.0 */public class ${modelClassName} implements Serializable{ private static final long serialVersionUID = 1L;<c:forEach items="${columns}" var="column" varStatus="status"> <c:choose> <c:when test="${column.javaTypeName == 'String' || column.javaTypeName == 'java.lang.String'}">private String ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'Integer' || column.javaTypeName == 'java.lang.Integer'}">private Integer ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'Float' || column.javaTypeName == 'java.lang.Float'}">private Float ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'Double' || column.javaTypeName == 'java.lang.Double'}">private Double ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'Long' || column.javaTypeName == 'java.lang.Long'}">private Long ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'java.util.Date'}">private Date ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'java.sql.Date'}">private Date ${column.variableName};</c:when> <c:when test="${column.javaTypeName == 'java.sql.Timestamp'}">private Timestamp ${column.variableName};</c:when> <c:otherwise>private ${column.javaTypeName} ${column.variableName};</c:otherwise></c:choose></c:forEach>...
数据类型的映射通过com.skin.database.dialect包中的对应类来完成。
如果某些类型生成的代码不满意可以重写对应的dialect。也可以在前台直接编辑表的字段来手动映射。
刚刚修复了几个表格编辑的bug, 新版本已经上传.
2013-04-01 1.0.2
修复firefox和chrome下表格编辑之后无法提交, 提交到googlecode
2013-04-02 1.0.4
修复了几个表格编辑bug, 添加输出路径可编辑
已经上传到github: https://github.com/xuesong123。
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- 代码生成器
- N-tier 代码生成器
- 代码生成器与 .NET
- 代码生成器与 .NET
- 代码生成器与 .NET
- 关于代码生成器
- 整理DOTNET代码生成器
- dotnetcoding 代码生成器
- Android Camera Subsystem 架构(Binder机制)及显示分析
- 数组作数据成员
- IBM的历史
- 点到直线距离公式
- Apple公司历史
- 代码生成器
- 北大acm1007题
- MFC源代码的头文件源文件切换,以及源代码的挖掘和学习
- 程序员技术练级攻略
- 思科公司历史
- LA 3702 network(greedy + dfs)
- 十大畅销【C++】书籍
- Google公司历史
- 程序员如何学习和积累