在代码自动生成(二)中写了自动生成mybaties **.mapper.xml,本篇是在原来的基础上加上生成对应的接口类
共有的类我就不写了,只把用的ftl和生成代码的工具类展示出来。
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.mengwx.entiy.Student;
import com.mengwx.util.Freemarker;
import com.mengwx.util.ReflectBean;
/**
*
* @author mengwx
* @date 2017-2-22
*/
public class CreateCode{
/**
* 生成代码
*/
public static void proCode(Object object,String table) throws Exception{
String objectName = object.getClass().getSimpleName();
String pack = object.getClass().getName();
ReflectBean re = new ReflectBean();
re.setTable(table);
List<String> list = re.doAction();
String id = "";
if(list.size()>=1){
id = list.get(list.size()-1); //主键字段
}
Map<String,Object> root = new HashMap<String,Object>(); //创建数据模型
root.put("packageName", objectName);
root.put("pack", pack); //包名
root.put("objectName", objectName); //类名
root.put("objectNameLower", objectName.toLowerCase()); //类名(全小写)
root.put("objectNameUpper", objectName.toUpperCase()); //类名(全大写)
root.put("nowDate", new Date()); //当前日期
root.put("table", table);
root.put("id", list.get(list.size()-1));
list.remove(list.size()-1);
list.remove(id);
root.put("fieldList", list);
String filePath = "C:/Users/huxf/workspace/createcode/src/com/mengwx/code/"; //存放路径
String ftlPath = "C:/Users/huxf/workspace/createcode/src/com/mengwx/ftl"; //ftl路径
String filePath2 = "C:/Users/huxf/workspace/createcode/src/com/mengwx/dao/"; //存放路径
/*生成dao*/
Freemarker.printFile("daoTemplate.ftl", root, ""+objectName+"Mapper.java", filePath2, ftlPath);
/*生成mybatis xml*/
Freemarker.printFile("mapperMysqlTemplate.ftl", root, ""+objectName+"Mapper.xml", filePath, ftlPath);
}
public static void main(String[] args) throws Exception {
proCode(new Student(),"student");
}
}
freemaker模板文件ftl daoTemplate.ftl
package com.mengwx.dao;
import java.util.List;
import ${pack};
public interface ${objectName}Mapper {
/*
* 新增
*/
public void save(${objectName} pd)throws Exception;
/*
* 删除
*/
public void delete(String id)throws Exception;
/*
* 修改
*/
public void edit(${objectName} pd)throws Exception;
/*
*列表(全部)
*/
public List<${objectName}> listAll()throws Exception;
/*
* 通过id获取数据
*/
public ${objectName} findById(String id)throws Exception;
}