jfinal学习笔记【3】-freemarker简单测试-laymi(雷米快速开发平台)

1:作为一个快速开发平台,代码生成工具是必不可少的,上文中已经提到了jfinal自带的代码生成工具了,但是只能生成到实体类等,可是我们需要的不只是这个,我们还需要生成service   controller  以及html页面等 只要有公用的那我们就生成  ,暂时的思路是数据库建好表 然后生成,后期可能做在线的生成工具,那会复杂很多,咱先整个简单的,几个月前,也就是我进入这个行业的第2个月,第一个月自己做了个小项目,只是展示官网,后台都没有。第二个月整了个大的,公司就三个java,那两个人比我还新,所以什么都得我自己弄,还得帮着他俩,本人高中毕业,说实话,达内培训小渣渣(这里不是打广告,4个月2万的学费不便宜,不过认真学真的能给你带进这个行业,不学习再好的机构也白搭),找个工作不容易,济南2.5的工作当作宝贝似的,生怕丢了,那个项目仿别人的网站,前端真省事,直接右击查看源代码改的,最终结果一个网站前端整出来了300多个页面,他每点以下生成一个页面,意思就是一个页面10个按钮能整出10个类似的页面,坑啊!数据库几十张表,那会知道什么啊,随便找了个后台静态模板,自己改吧,可是数据库几十表要生成几十个后台的页面再加上增删改查的也上百个了,最终用io流写好一个,然后一点点读,一行行输出(那会不知道什么模板引擎什么的),最终花了一个多星期终于写了个简单的生生工具,一键能生成 ent dao service controller jsp 直接带增删改查方法表格导入导出。说了这么多不是在说自己多牛逼,只是想告诉进入这个行业的小白们,没有实现不了的事,敢想敢做敢实践你就能成功!java发展这么多年,只要能走到你面前的困难都是不困难!肯定有很多前辈遇到过,百度分享过,所以都能解决!付出和收获是成正比的,我虽然还是个小白,不过我一直在成长!这也是基本每天晚上通宵学习的结果,不是不睡觉,是每天到后半夜都不知道自己怎么睡着的!言归正传,我的想法很庞大,我的知识很渺小,所以我也在一步步实现我的想法!大家加油!今天只测试个代码生成工具


1:在网上找了个教程,http://blog.csdn.net/whithorse/article/details/19206087

弄下来oracle数据库的我电脑没有  反正看看白  发现一个工具类  应该很简单

那我就简单测试下这个工具类


先导入jar包 他的lib文件下有  然后新建类

package com.platform.tool.freeMaker;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class FreeMakerUtil {
	
	/**
	 * 
	 * 获取模板文件
	 * 
	 * @param name
	 * @return
	 */
	public Template getTemplate(String name) {
		try {
			Configuration cfg = new Configuration();
			cfg.setClassForTemplateLoading(this.getClass(), "/ftl");
			Template template = cfg.getTemplate(name);
			return template;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 控制台输出
	 * 
	 * @param name
	 * @param root
	 */
	public void print(String templateName, Map<String, Object> root) {

		try {
			Template template = this.getTemplate(templateName);
			template.process(root, new PrintWriter(System.out));
		} catch (TemplateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 生成文件
	 * 
	 * @param name:模板名
	 * @param root:数据原型
	 * @param outFile:输出路径(全路径名)
	 */
	public void generateFile(String templateName, Map<String, Object> root, String outFilePath) {

		FileWriter out = null;
		try {
			// 通过一个文件输出流,就可以写到相应的文件中,此处用的是绝对路径
			out = new FileWriter(new File(outFilePath));
			Template temp = this.getTemplate(templateName);
			temp.process(root, out);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		} finally {
			try {
				if (out != null)
					out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args) {
		FreeMakerUtil fm = new FreeMakerUtil();
		fm.getTemplate("daoModel.ftl");
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("package", "liuzhiye");
		//System.out.println(fm.getTemplate("daoModel.ftl"));
		fm.print("a.ftl", map);
		fm.generateFile("a.ftl", map, "E:\\x.java");
	}

}
新建一个模板a.ftl  放在一个ftl包里
package ${package};

import com.excellence.platform.portal.common.base.BaseDao;

然后测试就行了,不过弄成代码生生工具还有很多东西呢,怎么读取数据库的sql百度就行,还有数据库类型转java类型等等,在加上页面的增删改查动态设置 等
慢慢来吧 总有一天会成功





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值