代码生成器的完成步骤

更新时间:2020-08-17 09:44:02点击次数:833次

1、首先代码生成器需要与数据库进行连接,获取你将生成的数据表结构

<mapper namespace="TableDataMapper">
<select id="getTable" parameterType="pd" resultType="com.gdkj.entity.system.TableData">
select  COLUMN_NAME,DATA_TYPE,COLUMN_DEFAULT,COLUMN_COMMENT 
from  information_schema.COLUMNS 
where  TABLE_SCHEMA= #{TABLE_SCHEMA,jdbcType=VARCHAR}
AND TABLE_NAME = #{TABLE_NAME,jdbcType=VARCHAR};
</select>
</mapper>
2、将获取到的表结构属性

fieldList = new ArrayList<String[]>(); // 属性集合 ========4
for (TableData data : listAll) {
String[] field=new String[7];
field[0]=data.getCOLUMN_NAME().toUpperCase();//字段小写转大写
//处理数据库个别类型
field[1]=jdbcTypeConverJavaType(data.getDATA_TYPE());//字段类型
field[2]=data.getCOLUMN_COMMENT().equals("")?"未知":data.getCOLUMN_COMMENT();//字段备注
field[3]="是";
field[4]=data.getCOLUMN_DEFAULT()!=null?data.getCOLUMN_DEFAULT():"无";//字段默认值
field[5]=data.getCOLUMN_NAME();//字段
first = field[5].substring(0, 1);
field[6] = first.toUpperCase() + field[5].substring(1, field[5].length());//字段首字母大写
fieldList.add(field); // 属性放到集合里面
}


3、 找到生成模板,生成需要的代码

String ftlPath = "createCode"; // 模板路径

/* 生成controller */
String outFile="controller/" + packageName + "/" + objectName.toLowerCase() + "/" + objectName + "Controller.java";
Freemarker.printFileToAbsolutePath("controllerTemplate.ftl", root,outFile , Const.WORK_SPACE_PATH_JAVASRC, ftlPath);

/* 生成service */
outFile="service/" + packageName + "/" + objectName.toLowerCase() + "/" + objectName + "Service.java";
Freemarker.printFileToAbsolutePath("serviceTemplate.ftl", root,outFile, Const.WORK_SPACE_PATH_JAVASRC, ftlPath);

/* 生成mybatis xml */
outFile= "mybatis/"+packageName + "/" + objectName + "Mapper.xml";
Freemarker.printFileToAbsolutePath("mapperMysqlTemplate.ftl", root,outFile, Const.WORK_SPACE_PATH_MYBATIS, ftlPath);

/* 生成实体类 */
outFile= "entity/" + packageName + "/" + objectName.toLowerCase() + "/" + objectName + "Entity.java";
Freemarker.printFileToAbsolutePath("entityTemplate.ftl", root,outFile, Const.WORK_SPACE_PATH_JAVASRC, ftlPath);

/* 生成jsp页面 */
outFile= "jsp/" + packageName + "/" + objectName.toLowerCase() + "/" + objectName.toLowerCase() + "_list.jsp";
Freemarker.printFileToAbsolutePath("jsp_list_Template.ftl", root,outFile, Const.WORK_SPACE_PATH_JSP, ftlPath);
outFile= "jsp/" + packageName + "/" + objectName.toLowerCase() + "/" + objectName.toLowerCase() + "_edit.jsp";
Freemarker.printFileToAbsolutePath("jsp_edit_Template.ftl", root,outFile , Const.WORK_SPACE_PATH_JSP, ftlPath);


  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息