html模板demo制作:
导入jar包,修改pom.xml
新建resources文件夹和java文件夹
resources文件夹用于存放ftl模板文件
java文件夹用于存放java文件
再resources文件夹新建一个ftl模板
hello.ftl
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>${name}</h1>
<#--这是模板遍历-->
<#list textlist as item>
<p>${item}</p>
</#list>
</body>
</html>
新建测试类进行模板生成测试
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.*;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class htmlDemo {
//与hibernate初识化相似
public Configuration configuration=new Configuration(Configuration.getVersion());
//要使用freemarker模板要先初始化
public void init(){
try {
//加载配置文件路径,即读取resources文件夹下的ftl模板,注意若路径中包含有中文,请写成下面这种格式
String path=URLDecoder.decode(this.getClass().getClassLoader().getResource("").getPath(),"utf-8");
//开始正式初始化
configuration.setDirectoryForTemplateLoading(new File(path));
} catch (IOException e) {
e.printStackTrace();
}
}
public void process(String tempname,String pathname){
try {
//获得模板,传进来的ftl模板的名字
Template template=configuration.getTemplate(tempname);
Map map=new HashMap();
//这里的name的对应模板内的${name}
map.put("name","Tom");
//放入集合对象进map ${textlist}
List<String> ll=new ArrayList<>();
ll.add("这是");
ll.add("模板遍历");
ll.add("集合还是要放进map里面");
map.put("textlist",ll);
//文件读取的io流,用于写入内容并创建此通过模板生成的文件
FileOutputStream fileOutputStream=new FileOutputStream(pathname);
OutputStreamWriter outputStream=new OutputStreamWriter(fileOutputStream);
//通过方法把内容输入进模板内
template.process(map,outputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
//写main方法测试
public static void main(String[] args) {
htmlDemo htmlDemo=new htmlDemo();
htmlDemo.init();
//注意,调用的是本类的方法,第一个参数即模板的完整名字,第二个是通过模板生成的文件路径
htmlDemo.process("hello.ftl","D://aa.html");
}
}
下面开始自动生成实体类
首先要带入连接mysql的jar包,跟JDBC差不多
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
整体demo的结构是这样的
解释:
util包内放的是工具
Column是存放表的列属性类
CreatePOJO是创建实体类的方法类
DBHelper是连接数据库的工具类
FreeMarkerUtil是自动生成模板的工具类
Generator是写静态属性的,暂时用于写好JDBC的参数
GetTables是调用DBHelper来获取所有的表其列的工具类
Tables是存放数据库中表属性类
StringUtils 字符串工具类 用于修改字符串首字母大写,去除下划线等
先按步骤从简单到困难
1.创建Generator(静态属性参数类)
package com.bdqn.util;
public class Ge