自动生成代码工具 文件工具类

                                                    自动生成代码工具 文件工具类

import java.io.File;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ijwt.element.Global;
import com.ijwt.element.Table;

/**
 * @author InJavaWeTrust
 */
public enum UtilFile {

	INSTANCE;
	
	private static Logger log = LoggerFactory.getLogger(UtilFile.class);

	/**
	 * 创建目录
	 * @param path 需要生成的目录
	 */
	public void createDir(String path) {
		if(StringUtils.isNotEmpty(path)) {
			File folder = new File(path);
			boolean tof = folder.mkdirs();
			if (tof) {
				log.info("---->目录[{}]创建成功!!!", folder.getName());
			} else {
				log.info("---->目录[{}]创建失败或已存在!!!", folder);
			}
		}
	}

	/**
	 * 初始化目录
	 * @param global
	 */
	public void initDirName(Global global) {
		// 1.po
		String poDir = global.getOsdir() + File.separatorChar + "po";
		createDir(poDir);
		// 2.xml
		String xmlDir = global.getOsdir() + File.separatorChar + "xml";
		createDir(xmlDir);
	}
	
	public void generateTableFile(Global global) {
		log.info("------------------生成表文件开始------------------");
		List<Table> tableList = UtilXML.INSTANCE.getTableList();
		for (Table table : tableList) {
			String tableName = table.getTableName();
			log.info("----> [{}] 表", tableName);
			//校验从xml配置文件中得到的表名是否存在于当前数据中
			if (!UtilDB.getAllTableName().contains(tableName)) {
				log.warn("=====>当前数据库不包含此 [{}] 表,请检查配置!!!", tableName);
				continue;
			}
			String javaClassName = UtilString.INSTANCE.capitalize(UtilString.INSTANCE.columnNameToJavaName(tableName));
			Map<Object, Object> map = UtilFreemarker.INSTANCE.getTableInfo(tableName);
			map.put("author", global.getAuthor());
			map.put("project", global.getProject());
			map.put("className", javaClassName);
			map.put("javapackage", global.getJavapackage());
			// 1.po
			String poName = global.getOsdir() + File.separatorChar + "po" + File.separatorChar + javaClassName + "PO.java";
			UtilFreemarker.INSTANCE.generateFile(poName, "javapo.ftl", map);
			// 2.xml
			String mapperName = global.getOsdir() + File.separatorChar + "xml" + File.separatorChar + javaClassName + ".xml";
			UtilFreemarker.INSTANCE.generateFile(mapperName, "mapper.ftl", map);
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值