Browse Source

第一次提交

ghost 4 years ago
parent
commit
bc61e3216c

+ 84 - 0
pom.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>com.dwl</groupId>
+	<artifactId>mindoc</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<name>mindoc</name>
+	<description>Demo project for Spring Boot</description>
+
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>2.0.5.RELEASE</version>
+		<relativePath />
+		<!-- lookup parent from repository -->
+	</parent>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+		<java.version>1.8</java.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-freemarker</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-jdbc</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>com.oracle</groupId>
+			<artifactId>ojdbc6</artifactId>
+			<version>11.2.0.3</version>
+		</dependency>
+
+		<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
+		<dependency>
+			<groupId>com.microsoft.sqlserver</groupId>
+			<artifactId>mssql-jdbc</artifactId>
+			<version>7.2.1.jre8</version>
+		</dependency>
+
+
+		<dependency>
+			<groupId>com.itextpdf</groupId>
+			<artifactId>itext7-core</artifactId>
+			<version>7.0.2</version>
+			<type>pom</type>
+		</dependency>
+
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+
+</project>

+ 33 - 0
src/main/java/com/dwl/mindoc/MinConfig.java

@@ -0,0 +1,33 @@
+package com.dwl.mindoc;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+/**
+ * @program: mindoc
+ * @description: 参数配置
+ * @author: daiwenlong
+ * @create: 2018-10-09 20:39
+ **/
+@Component
+public class MinConfig {
+
+    @Autowired
+    private Environment environment;
+
+
+   /**
+   * @Description: 获取参数
+   * @Param: key
+   * @return: value
+   * @Date: 2018/10/11
+   */ 
+    public String getValue(String key){
+        return  environment.getProperty(key);
+    }
+
+
+}
+
+

+ 12 - 0
src/main/java/com/dwl/mindoc/MindocApplication.java

@@ -0,0 +1,12 @@
+package com.dwl.mindoc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class MindocApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(MindocApplication.class, args);
+	}
+}

+ 15 - 0
src/main/java/com/dwl/mindoc/dao/BaseDao.java

@@ -0,0 +1,15 @@
+package com.dwl.mindoc.dao;
+
+import com.dwl.mindoc.database.Database;
+import com.dwl.mindoc.domain.ColumnVo;
+import com.dwl.mindoc.domain.TableVo;
+
+import java.util.List;
+
+public interface BaseDao {
+
+    List<TableVo> getTables(Database base);
+
+    List<ColumnVo> getColumns(Database base ,String tableName);
+
+}

+ 37 - 0
src/main/java/com/dwl/mindoc/dao/impl/BaseDaoImpl.java

@@ -0,0 +1,37 @@
+package com.dwl.mindoc.dao.impl;
+
+import com.dwl.mindoc.dao.BaseDao;
+import com.dwl.mindoc.database.Database;
+import com.dwl.mindoc.domain.ColumnVo;
+import com.dwl.mindoc.domain.TableVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @program: mindoc
+ * @description: dao
+ * @author: daiwenlong
+ * @create: 2018-10-13 11:48
+ **/
+@Repository
+public class BaseDaoImpl implements BaseDao{
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    @Override
+    public List<TableVo> getTables(Database base) {
+        return jdbcTemplate.query(base.getTablesSql(base),new Object[]{},new BeanPropertyRowMapper(TableVo.class));
+    }
+
+    @Override
+    public List<ColumnVo> getColumns(Database base ,String tableName) {
+        return jdbcTemplate.query(base.getColumnSql(base ,tableName),new Object[]{},new BeanPropertyRowMapper(ColumnVo.class));
+    }
+}
+
+

+ 59 - 0
src/main/java/com/dwl/mindoc/database/BaseFactory.java

@@ -0,0 +1,59 @@
+package com.dwl.mindoc.database;
+
+import com.dwl.mindoc.MinConfig;
+import com.dwl.mindoc.database.impl.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @program: mindoc
+ * @description: factory
+ * @author: daiwenlong
+ * @create: 2018-10-13 11:53
+ **/
+@Component
+public class BaseFactory {
+
+    @Autowired
+    private MinConfig config;
+
+    private enum BaseType{
+
+        MySQL,Oracle,PostgreSQL,SQLite,SQLServer
+
+    }
+
+
+    /**
+     * 获取数据库信息
+     * @return
+     */
+    public Database getDataBase() throws Exception {
+        Database dataBase = null;
+        String baseType = config.getValue("baseType");
+        String baseName = config.getValue("baseName");
+        BaseType type =BaseType.valueOf(baseType);
+        switch (type) {
+            case MySQL:
+                dataBase = new MySQL(baseName);
+                break;
+            case Oracle:
+                dataBase = new Oracle(baseName);
+                break;
+            case PostgreSQL:
+                dataBase = new PostgreSQL();
+                break;
+            case SQLite:
+                dataBase = new SQLite();
+                break;
+            case SQLServer:
+                dataBase = new SQLServer(baseName);
+                break;
+            default:
+                throw new Exception("Not Support BaseType: "+baseType);
+        }
+        return dataBase;
+    }
+}
+
+

+ 14 - 0
src/main/java/com/dwl/mindoc/database/Database.java

@@ -0,0 +1,14 @@
+package com.dwl.mindoc.database;
+
+public interface Database {
+
+    String getBaseName();
+
+    String getType();
+
+    String getTablesSql(Database base);
+
+    String getColumnSql(Database base ,String tableName);
+
+
+}

+ 41 - 0
src/main/java/com/dwl/mindoc/database/impl/MySQL.java

@@ -0,0 +1,41 @@
+package com.dwl.mindoc.database.impl;
+
+import com.dwl.mindoc.database.Database;
+
+/**
+ * @program: mindoc
+ * @description: MySQL数据库
+ * @author: daiwenlong
+ * @create: 2018-10-09 21:13
+ **/
+public class MySQL implements Database{
+
+    private String baseName;
+
+    public MySQL(String baseName){
+        this.baseName = baseName;
+    }
+
+    @Override
+    public String getBaseName() {
+        return this.baseName;
+    }
+
+    @Override
+    public String getType() {
+        return "MySQL";
+    }
+
+    @Override
+    public String getTablesSql(Database base) {
+        return "select table_name,table_comment from information_schema.tables where table_schema = '"+base.getBaseName()+"' order by table_name asc";
+    }
+
+    @Override
+    public String getColumnSql(Database base ,String tableName) {
+        return "select column_name,column_type,character_maximum_length as column_key,is_nullable,column_comment from information_schema.columns where table_schema = '"+base.getBaseName()+"'  and table_name = '"+tableName+"'";
+    }
+
+}
+
+

+ 43 - 0
src/main/java/com/dwl/mindoc/database/impl/Oracle.java

@@ -0,0 +1,43 @@
+package com.dwl.mindoc.database.impl;
+
+import com.dwl.mindoc.database.Database;
+
+/**
+ * @program: mindoc
+ * @description: Oracle
+ * @author: daiwenlong
+ * @create: 2018-10-13 12:17
+ **/
+public class Oracle implements Database {
+
+    private String baseName;
+
+    public Oracle(String baseName){
+        this.baseName = baseName;
+    }
+
+    @Override
+    public String getBaseName() {
+        return this.baseName;
+    }
+
+    @Override
+    public String getType() {
+        return "Oracle";
+    }
+
+    @Override
+    public String getTablesSql(Database base) {
+        return "select a.TABLE_NAME as table_name,b.COMMENTS as table_comment from user_tables a,user_tab_comments b WHERE a.TABLE_NAME=b.TABLE_NAME order by table_name";
+    }
+
+    @Override
+    public String getColumnSql(Database base ,String tableName) {
+        return "select c.*,d.comments column_comment from (select a.column_name ,a.data_type||'('||data_length||')' column_type,a.nullable is_nullable,CASE when  b.column_name is not null then 'PK' else '' END column_key  from user_tab_columns a left join " +
+                "                (select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P') b on " +
+                "                b.table_name = a.Table_Name and a.column_name = b.column_name where a.Table_Name= '"+tableName+"' ) c left join user_col_comments d on c.column_name = d.column_name where d.table_name = '"+tableName+"' " +
+                "";
+    }
+}
+
+

+ 34 - 0
src/main/java/com/dwl/mindoc/database/impl/PostgreSQL.java

@@ -0,0 +1,34 @@
+package com.dwl.mindoc.database.impl;
+
+import com.dwl.mindoc.database.Database;
+
+/**
+ * @program: mindoc
+ * @description: PostgreSQL
+ * @author: daiwenlong
+ * @create: 2018-10-13 12:19
+ **/
+public class PostgreSQL implements Database {
+
+    @Override
+    public String getBaseName() {
+        return null;
+    }
+
+    @Override
+    public String getType() {
+        return null;
+    }
+
+    @Override
+    public String getTablesSql(Database base) {
+        return null;
+    }
+
+    @Override
+    public String getColumnSql(Database base, String tableName) {
+        return null;
+    }
+}
+
+

+ 122 - 0
src/main/java/com/dwl/mindoc/database/impl/SQLServer.java

@@ -0,0 +1,122 @@
+package com.dwl.mindoc.database.impl;
+
+import com.dwl.mindoc.database.Database;
+
+/**
+ * @program: mindoc
+ * @description: SQLServer
+ * @author: daiwenlong
+ * @create: 2018-10-13 12:20
+ **/
+public class SQLServer implements Database {
+
+	private String baseName;
+
+	public SQLServer(String baseName) {
+		this.baseName = baseName;
+	}
+
+	@Override
+	public String getBaseName() {
+		return this.baseName;
+	}
+
+	@Override
+	public String getType() {
+		return null;
+	}
+
+	@Override
+	public String getTablesSql(Database base) {
+		 return "SELECT\r\n" + 
+		 		"	obj.name AS table_name\r\n" + 
+		 		"   ,CONVERT(NVARCHAR, cmt.value) AS table_comment\r\n" + 
+		 		"   from dbo.sysobjects obj LEFT JOIN sys.extended_properties cmt\r\n" + 
+		 		"	ON obj.id = cmt.major_id\r\n" + 
+		 		"		AND cmt.minor_id = 0\r\n" + 
+		 		"		AND cmt.name = 'MS_Description'\r\n" + 
+		 		"		where 	 obj.xtype = 'U'\r\n" + 
+		 		"		AND obj.status >= 0\r\n" + 
+		 		"		order by 	obj.name asc";
+	}
+
+	@Override
+	public String getColumnSql(Database base, String tableName) {
+		return "SELECT obj.NAME \r\n" + 
+				"       AS \r\n" + 
+				"       表名, \r\n" + 
+				"       CONVERT(NVARCHAR, epTwo.value) \r\n" + 
+				"       AS 表说明, \r\n" + 
+				"       col.colorder \r\n" + 
+				"       AS colorder, \r\n" + 
+				"       col.NAME \r\n" + 
+				"       AS column_name, \r\n" + 
+				"       t.NAME + CASE WHEN t.NAME LIKE '%char%' THEN CASE CONVERT(NVARCHAR, \r\n" + 
+				"       Isnull( \r\n" + 
+				"       Columnproperty(col.id, col.NAME, 'PRECISION'), '')) WHEN '-1' THEN \r\n" + 
+				"       '(max)' ELSE \r\n" + 
+				"       '('+CONVERT(NVARCHAR, \r\n" + 
+				"       Isnull(Columnproperty(col.id, col.NAME, 'PRECISION'), '')) \r\n" + 
+				"       +')' END ELSE CASE WHEN t.NAME = 'decimal' THEN '('+CONVERT(NVARCHAR, \r\n" + 
+				"       Isnull( \r\n" + 
+				"       Columnproperty(col.id, col.NAME, 'PRECISION'), '')) + ',' + CONVERT( \r\n" + 
+				"       NVARCHAR, \r\n" + 
+				"       Isnull(Columnproperty(col.id, col.NAME, 'Scale'), ''))+')' ELSE '' END \r\n" + 
+				"       END AS \r\n" + 
+				"       column_type, \r\n" + 
+				"       Isnull(ep.[value], '') \r\n" + 
+				"       AS column_comment \r\n" + 
+				"       --    ,CASE \r\n" + 
+				"       --  WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN '1' \r\n" + 
+				"       --  ELSE '' \r\n" + 
+				"       --END AS [IDENTITY] \r\n" + 
+				"       , \r\n" + 
+				"       CASE \r\n" + 
+				"         WHEN EXISTS (SELECT 1 \r\n" + 
+				"                      FROM   dbo.sysindexes si \r\n" + 
+				"                             INNER JOIN dbo.sysindexkeys sik \r\n" + 
+				"                                     ON si.id = sik.id \r\n" + 
+				"                                        AND si.indid = sik.indid \r\n" + 
+				"                             INNER JOIN dbo.syscolumns sc \r\n" + 
+				"                                     ON sc.id = sik.id \r\n" + 
+				"                                        AND sc.colid = sik.colid \r\n" + 
+				"                             INNER JOIN dbo.sysobjects so \r\n" + 
+				"                                     ON so.NAME = si.NAME \r\n" + 
+				"                                        AND so.xtype = 'PK' \r\n" + 
+				"                      WHERE  sc.id = col.id \r\n" + 
+				"                             AND sc.colid = col.colid) THEN 'Y' \r\n" + 
+				"         ELSE '' \r\n" + 
+				"       END \r\n" + 
+				"       AS column_key, \r\n" + 
+				"       CASE \r\n" + 
+				"         WHEN col.isnullable = 1 THEN 'Y' \r\n" + 
+				"         ELSE '' \r\n" + 
+				"       END \r\n" + 
+				"       AS is_nullable, \r\n" + 
+				"       Isnull(comm.text, '') \r\n" + 
+				"       AS default_value \r\n" + 
+				"--,CONVERT(NVARCHAR, ep.value) remark \r\n" + 
+				"FROM   dbo.syscolumns col \r\n" + 
+				"       LEFT JOIN dbo.systypes t \r\n" + 
+				"              ON col.xtype = t.xusertype \r\n" + 
+				"       INNER JOIN dbo.sysobjects obj \r\n" + 
+				"               ON col.id = obj.id \r\n" + 
+				"                  AND obj.xtype = 'U' \r\n" + 
+				"                  AND obj.status >= 0 \r\n" + 
+				"       LEFT JOIN dbo.syscomments comm \r\n" + 
+				"              ON col.cdefault = comm.id \r\n" + 
+				"       LEFT JOIN sys.extended_properties ep \r\n" + 
+				"              ON col.id = ep.major_id \r\n" + 
+				"                 AND col.colid = ep.minor_id \r\n" + 
+				"                 AND ep.NAME = 'MS_Description' \r\n" + 
+				"       LEFT JOIN sys.extended_properties epTwo \r\n" + 
+				"              ON obj.id = epTwo.major_id \r\n" + 
+				"                 AND epTwo.minor_id = 0 \r\n" + 
+				"                 AND epTwo.NAME = 'MS_Description' \r\n" + 
+				"WHERE  1 = 1 \r\n" + 
+				"       AND obj.NAME = '" + tableName + "' \r\n" + 
+				"ORDER  BY obj.NAME, \r\n" + 
+				"          col.colorder";
+		//return "select column_name,column_type,column_key,is_nullable,column_comment from information_schema.columns where table_schema = '"+base.getBaseName()+"'  and table_name = '"+tableName+"'";
+	}
+}

+ 35 - 0
src/main/java/com/dwl/mindoc/database/impl/SQLite.java

@@ -0,0 +1,35 @@
+package com.dwl.mindoc.database.impl;
+
+import com.dwl.mindoc.database.Database;
+
+/**
+ * @program: mindoc
+ * @description: SQLite
+ * @author: daiwenlong
+ * @create: 2018-10-13 12:19
+ **/
+public class SQLite implements Database {
+    @Override
+    public String getBaseName() {
+        return null;
+    }
+
+    @Override
+    public String getType() {
+        return null;
+    }
+
+    @Override
+    public String getTablesSql(Database base) {
+        return null;
+    }
+
+    @Override
+    public String getColumnSql(Database base, String tableName) {
+        return null;
+    }
+
+
+}
+
+

+ 72 - 0
src/main/java/com/dwl/mindoc/domain/ColumnVo.java

@@ -0,0 +1,72 @@
+package com.dwl.mindoc.domain;
+
+/**
+ * @program: mindoc
+ * @description: 列信息
+ * @author: daiwenlong
+ * @create: 2018-10-09 21:58
+ **/
+public class ColumnVo {
+    /*列名*/
+    private String columnName;
+    /*数据类型*/
+    private String columnType;
+    /*键类型*/
+    private String columnKey;
+    /*可否为空*/
+    private String isNullable;
+    /*注释*/
+    private String columnComment;
+    /*默认值*/
+    private String defaultValue;
+
+    public String getColumnName() {
+        return columnName;
+    }
+
+    public void setColumnName(String columnName) {
+        this.columnName = columnName;
+    }
+
+    public String getColumnType() {
+        return columnType;
+    }
+
+    public void setColumnType(String columnType) {
+        this.columnType = columnType;
+    }
+
+    public String getColumnKey() {
+        return columnKey;
+    }
+
+    public void setColumnKey(String columnKey) {
+        this.columnKey = columnKey;
+    }
+
+    public String getIsNullable() {
+        return isNullable;
+    }
+
+    public void setIsNullable(String isNullable) {
+        this.isNullable = isNullable;
+    }
+
+	public String getColumnComment() {
+        return columnComment;
+    }
+
+    public void setColumnComment(String columnComment) {
+        this.columnComment = columnComment;
+    }
+
+    public String getDefaultValue() {
+		return defaultValue;
+	}
+
+    public void setDefaultValue(String defaultValue) {
+		this.defaultValue = defaultValue;
+	}
+}
+
+

+ 44 - 0
src/main/java/com/dwl/mindoc/domain/TableVo.java

@@ -0,0 +1,44 @@
+package com.dwl.mindoc.domain;
+
+import java.util.List;
+
+/**
+ * @program: mindoc
+ * @description: 表信息
+ * @author: daiwenlong
+ * @create: 2018-10-09 21:50
+ **/
+public class TableVo {
+    /*表名*/
+    private String tableName;
+    /*表注释*/
+    private String tableComment;
+
+    private List<ColumnVo> Columns;
+
+    public String getTableName() {
+        return tableName;
+    }
+
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    public String getTableComment() {
+        return tableComment;
+    }
+
+    public void setTableComment(String tableComment) {
+        this.tableComment = tableComment;
+    }
+
+    public List<ColumnVo> getColumns() {
+        return Columns;
+    }
+
+    public void setColumns(List<ColumnVo> columns) {
+        Columns = columns;
+    }
+}
+
+

+ 186 - 0
src/main/java/com/dwl/mindoc/service/GenerateService.java

@@ -0,0 +1,186 @@
+package com.dwl.mindoc.service;
+
+import com.dwl.mindoc.MinConfig;
+import com.dwl.mindoc.dao.BaseDao;
+import com.dwl.mindoc.database.BaseFactory;
+import com.dwl.mindoc.database.Database;
+import com.dwl.mindoc.domain.ColumnVo;
+import com.dwl.mindoc.domain.TableVo;
+import com.itextpdf.kernel.color.DeviceRgb;
+import com.itextpdf.kernel.events.PdfDocumentEvent;
+import com.itextpdf.kernel.font.PdfFont;
+import com.itextpdf.kernel.font.PdfFontFactory;
+import com.itextpdf.kernel.pdf.PdfDocument;
+import com.itextpdf.kernel.pdf.PdfWriter;
+import com.itextpdf.layout.element.Paragraph;
+import com.itextpdf.layout.element.Table;
+import com.itextpdf.layout.element.Cell;
+import com.itextpdf.layout.property.HorizontalAlignment;
+import com.itextpdf.layout.property.TextAlignment;
+import com.itextpdf.layout.property.UnitValue;
+import com.itextpdf.layout.Document;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ResourceUtils;
+
+import javax.annotation.PostConstruct;
+import java.io.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @program: mindoc
+ * @description: generator
+ * @author: daiwenlong
+ * @create: 2018-10-13 13:00
+ **/
+@Service
+public class GenerateService {
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private BaseFactory factory;
+
+    @Autowired
+    private BaseDao dao;
+
+    @Autowired
+    private MinConfig config;
+
+    @PostConstruct
+    public void genertator() {
+        try {
+            Database base = factory.getDataBase();
+            List<TableVo> tables = dao.getTables(base);
+            tables.forEach(table -> {
+                table.setColumns(dao.getColumns(base, table.getTableName()));
+                logger.info("mindoc - TableName:{} TableComment:{} loading...", table.getTableName(),
+                        table.getTableComment());
+            });
+            if ("pdf".equalsIgnoreCase(config.getValue("fileType"))) {
+                makePdf(tables);
+            } else {
+                makeDoc(tables);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 文件名
+     */
+    @Value("${baseName}")
+    private String fileName;
+
+    /**
+     * 生成doc
+     *
+     * @param tables
+     * @return
+     * @throws IOException
+     * @throws TemplateException
+     */
+    private void makeDoc(List<TableVo> tables) {
+        logger.info("mindoc - makeDoc satrting...");
+        // 第一步:创建一个Configuration对象。
+        Configuration configuration = new Configuration(Configuration.getVersion());
+        // 第二步:设置模板文件所在的路径。
+        try {
+            configuration.setDirectoryForTemplateLoading(ResourceUtils.getFile("classpath:"));
+            // 第三步:设置模板文件使用的字符集。
+            configuration.setDefaultEncoding("utf-8");
+            // 第四步:加载一个模板,创建一个模板对象。
+            Template template = configuration.getTemplate("doc.xml");
+            // 第五步:创建一个模板使用的数据集。
+            Map<String, Object> dataModel = new HashMap<>();
+            dataModel.put("tables", tables);
+            // 生成文件放在项目根目录下
+            File outFile = new File(System.getProperty("user.dir") + "\\" + fileName + ".doc");
+            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
+            // 第六步:调用模板对象的process方法输出文件。
+            template.process(dataModel, out);
+            logger.info("mindoc - MakeDoc succeeded.");
+            logger.info("mindoc - Doc directory {}", outFile);
+        } catch (IOException | TemplateException e) {
+            logger.warn("mindoc - MakeDoc failed.");
+        }
+    }
+
+    private void makePdf(List<TableVo> tables) {
+
+        try {
+            logger.info("mindoc - makePdf satrting...");
+            PdfDocument pdfDoc = new PdfDocument(
+                    new PdfWriter(System.getProperty("user.dir") + "\\" + fileName + ".pdf"));
+            Document doc = new Document(pdfDoc);// 构建文档对象
+            TextFooterEventHandler eh = new TextFooterEventHandler(doc);
+            pdfDoc.addEventHandler(PdfDocumentEvent.END_PAGE, eh);
+            // 中文字体
+            PdfFont sysFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
+            Paragraph paragraph = new Paragraph();
+            paragraph.add("数据库设计文档").setFont(sysFont).setBold().setFontSize(20).setTextAlignment(TextAlignment.CENTER);
+            doc.add(paragraph);
+            int num = 0;
+            for (TableVo vo : tables) {
+                num++;
+                doc.add(new Paragraph(""));
+                String title = num + "  表名:" + vo.getTableName() + "   表注释:" + vo.getTableComment();
+                doc.add(new Paragraph(title).setFont(sysFont).setBold());
+                // 构建表格以100%的宽度
+                Table table = new Table(5).setWidth(UnitValue.createPercentValue(100));
+
+                table.addCell(new Cell().add(new Paragraph("列名")).setFont(sysFont)
+                        .setBackgroundColor(new DeviceRgb(221, 234, 238)));
+                table.addCell(new Cell().add(new Paragraph("数据类型")).setFont(sysFont)
+                        .setBackgroundColor(new DeviceRgb(221, 234, 238)));
+                table.addCell(new Cell().add(new Paragraph("字段长度")).setFont(sysFont)
+                        .setBackgroundColor(new DeviceRgb(221, 234, 238)));
+                table.addCell(new Cell().add(new Paragraph("允许空")).setFont(sysFont)
+                        .setBackgroundColor(new DeviceRgb(221, 234, 238)));
+                table.addCell(new Cell().add(new Paragraph("备注")).setFont(sysFont)
+                        .setBackgroundColor(new DeviceRgb(221, 234, 238)));
+                int j = 0;
+                for (ColumnVo col : vo.getColumns()) {
+                    j++;
+                    String columnName = ifNull(col.getColumnName());
+                    String columnType =ifNull(col.getColumnType());
+                    String columnKey = ifNull(col.getColumnKey());
+                    String isNullable = ifNull(col.getIsNullable());
+                    String columnComment = ifNull(col.getColumnComment());
+                    table.addCell(new Cell().add(new Paragraph(columnName)).setFont(sysFont));
+                    table.addCell(new Cell().add(new Paragraph(columnType)).setFont(sysFont));
+                    table.addCell(new Cell().add(new Paragraph(columnKey)).setFont(sysFont));
+                    table.addCell(new Cell().add(new Paragraph(isNullable)).setFont(sysFont));
+                    table.addCell(new Cell().add(new Paragraph(columnComment)).setFont(sysFont));
+                }
+                // 将表格添加入文档并页面居中
+                doc.add(table.setHorizontalAlignment(HorizontalAlignment.CENTER));
+            }
+            doc.close();
+            logger.info("mindoc - MakePdf succeeded.");
+            logger.info("mindoc - Pdf directory {}", System.getProperty("user.dir") + "\\" + fileName + ".pdf");
+        } catch (Exception e) {
+            logger.warn("mindoc - MakePdf failed.");
+            System.err.println(e.getMessage());
+        }
+    }
+
+    private String ifNull(String str){
+        if(null==str){
+            str ="";
+        }
+        return  str;
+    }
+
+}

+ 38 - 0
src/main/java/com/dwl/mindoc/service/TextFooterEventHandler.java

@@ -0,0 +1,38 @@
+package com.dwl.mindoc.service;
+
+import java.io.IOException;
+
+import com.itextpdf.io.font.FontConstants;
+import com.itextpdf.kernel.events.Event;
+import com.itextpdf.kernel.events.IEventHandler;
+import com.itextpdf.kernel.events.PdfDocumentEvent;
+import com.itextpdf.kernel.font.PdfFontFactory;
+import com.itextpdf.kernel.geom.Rectangle;
+import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
+import com.itextpdf.layout.Document;
+
+public class TextFooterEventHandler implements IEventHandler {
+
+	private Document doc;
+    private int page;
+
+	public TextFooterEventHandler(Document doc) {
+		this.doc = doc;
+	}
+
+	public void handleEvent(Event event) {
+		PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
+		PdfCanvas canvas = new PdfCanvas(docEvent.getPage());
+		Rectangle pageSize = docEvent.getPage().getPageSize();
+		page++;
+		canvas.beginText();
+		try {
+			canvas.setFontAndSize(PdfFontFactory.createFont(FontConstants.HELVETICA_OBLIQUE), 15);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		canvas.moveText((pageSize.getRight() - doc.getRightMargin() + (pageSize.getLeft() + doc.getLeftMargin())) / 2,
+				pageSize.getBottom() + doc.getBottomMargin()).showText("" + page).endText().release();
+	}
+
+}

+ 29 - 0
src/main/resources/application.properties

@@ -0,0 +1,29 @@
+#\u6570\u636E\u5E93\u94FE\u63A5\u4FE1\u606F Mysql
+spring.datasource.url=jdbc:mysql://39.100.111.244:3306/carbon-platform?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT
+spring.datasource.username=root
+spring.datasource.password=Hywa@123
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+#\u6570\u636E\u5E93\u94FE\u63A5\u4FE1\u606F MSSql
+#spring.datasource.url=jdbc:sqlserver://server_ip:port;DatabaseName=dbname
+#spring.datasource.username=user
+#spring.datasource.password=pwd
+#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
+#\u6570\u636E\u5E93\u94FE\u63A5\u4FE1\u606F Oracle
+#spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
+#spring.datasource.username=DAIVEN
+#spring.datasource.password=111111
+#spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
+
+#\u6570\u636E\u5E93\u7C7B\u578B
+baseType=MySQL
+#baseType=Oracle
+#baseType=SQLite
+#baseType=SQLServer
+#baseType=PostgreSQL
+
+#\u6587\u6863\u7C7B\u578B
+#fileType=pdf
+fileType=word
+
+#\u6570\u636E\u5E93\u5B9E\u4F8B\u540D
+baseName=carbon-platform

+ 699 - 0
src/main/resources/doc.xml

@@ -0,0 +1,699 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?mso-application progid="Word.Document"?>
+
+<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
+  <w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
+  <o:DocumentProperties>
+    <o:Author>moban</o:Author>
+    <o:LastAuthor>moban</o:LastAuthor>
+    <o:Revision>6</o:Revision>
+    <o:TotalTime>2</o:TotalTime>
+    <o:Created>2018-10-13T05:24:00Z</o:Created>
+    <o:LastSaved>2018-10-13T05:36:00Z</o:LastSaved>
+    <o:Pages>1</o:Pages>
+    <o:Words>11</o:Words>
+    <o:Characters>64</o:Characters>
+    <o:Lines>1</o:Lines>
+    <o:Paragraphs>1</o:Paragraphs>
+    <o:CharactersWithSpaces>74</o:CharactersWithSpaces>
+    <o:Version>15</o:Version>
+  </o:DocumentProperties>
+  <w:fonts>
+    <w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
+    <w:font w:name="Times New Roman">
+      <w:panose-1 w:val="02020603050405020304"/>
+      <w:charset w:val="00"/>
+      <w:family w:val="Roman"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="宋体">
+      <w:altName w:val="SimSun"/>
+      <w:panose-1 w:val="02010600030101010101"/>
+      <w:charset w:val="86"/>
+      <w:family w:val="auto"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="宋体">
+      <w:altName w:val="SimSun"/>
+      <w:panose-1 w:val="02010600030101010101"/>
+      <w:charset w:val="86"/>
+      <w:family w:val="auto"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="Calibri">
+      <w:panose-1 w:val="020F0502020204030204"/>
+      <w:charset w:val="00"/>
+      <w:family w:val="Swiss"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="E0002AFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="@宋体">
+      <w:panose-1 w:val="02010600030101010101"/>
+      <w:charset w:val="86"/>
+      <w:family w:val="auto"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
+    </w:font>
+  </w:fonts>
+  <w:styles>
+    <w:versionOfBuiltInStylenames w:val="7"/>
+    <w:latentStyles w:defLockedState="off" w:latentStyleCount="371">
+      <w:lsdException w:name="Normal"/>
+      <w:lsdException w:name="heading 1"/>
+      <w:lsdException w:name="heading 2"/>
+      <w:lsdException w:name="heading 3"/>
+      <w:lsdException w:name="heading 4"/>
+      <w:lsdException w:name="heading 5"/>
+      <w:lsdException w:name="heading 6"/>
+      <w:lsdException w:name="heading 7"/>
+      <w:lsdException w:name="heading 8"/>
+      <w:lsdException w:name="heading 9"/>
+      <w:lsdException w:name="caption"/>
+      <w:lsdException w:name="Title"/>
+      <w:lsdException w:name="Subtitle"/>
+      <w:lsdException w:name="Strong"/>
+      <w:lsdException w:name="Emphasis"/>
+      <w:lsdException w:name="Normal Table"/>
+      <w:lsdException w:name="Table Simple 1"/>
+      <w:lsdException w:name="Table Simple 2"/>
+      <w:lsdException w:name="Table Simple 3"/>
+      <w:lsdException w:name="Table Classic 1"/>
+      <w:lsdException w:name="Table Classic 2"/>
+      <w:lsdException w:name="Table Classic 3"/>
+      <w:lsdException w:name="Table Classic 4"/>
+      <w:lsdException w:name="Table Colorful 1"/>
+      <w:lsdException w:name="Table Colorful 2"/>
+      <w:lsdException w:name="Table Colorful 3"/>
+      <w:lsdException w:name="Table Columns 1"/>
+      <w:lsdException w:name="Table Columns 2"/>
+      <w:lsdException w:name="Table Columns 3"/>
+      <w:lsdException w:name="Table Columns 4"/>
+      <w:lsdException w:name="Table Columns 5"/>
+      <w:lsdException w:name="Table Grid 1"/>
+      <w:lsdException w:name="Table Grid 2"/>
+      <w:lsdException w:name="Table Grid 3"/>
+      <w:lsdException w:name="Table Grid 4"/>
+      <w:lsdException w:name="Table Grid 5"/>
+      <w:lsdException w:name="Table Grid 6"/>
+      <w:lsdException w:name="Table Grid 7"/>
+      <w:lsdException w:name="Table Grid 8"/>
+      <w:lsdException w:name="Table List 1"/>
+      <w:lsdException w:name="Table List 2"/>
+      <w:lsdException w:name="Table List 3"/>
+      <w:lsdException w:name="Table List 4"/>
+      <w:lsdException w:name="Table List 5"/>
+      <w:lsdException w:name="Table List 6"/>
+      <w:lsdException w:name="Table List 7"/>
+      <w:lsdException w:name="Table List 8"/>
+      <w:lsdException w:name="Table 3D effects 1"/>
+      <w:lsdException w:name="Table 3D effects 2"/>
+      <w:lsdException w:name="Table 3D effects 3"/>
+      <w:lsdException w:name="Table Contemporary"/>
+      <w:lsdException w:name="Table Elegant"/>
+      <w:lsdException w:name="Table Professional"/>
+      <w:lsdException w:name="Table Subtle 1"/>
+      <w:lsdException w:name="Table Subtle 2"/>
+      <w:lsdException w:name="Table Web 1"/>
+      <w:lsdException w:name="Table Web 2"/>
+      <w:lsdException w:name="Table Web 3"/>
+      <w:lsdException w:name="Table Theme"/>
+      <w:lsdException w:name="No Spacing"/>
+      <w:lsdException w:name="Light Shading"/>
+      <w:lsdException w:name="Light List"/>
+      <w:lsdException w:name="Light Grid"/>
+      <w:lsdException w:name="Medium Shading 1"/>
+      <w:lsdException w:name="Medium Shading 2"/>
+      <w:lsdException w:name="Medium List 1"/>
+      <w:lsdException w:name="Medium List 2"/>
+      <w:lsdException w:name="Medium Grid 1"/>
+      <w:lsdException w:name="Medium Grid 2"/>
+      <w:lsdException w:name="Medium Grid 3"/>
+      <w:lsdException w:name="Dark List"/>
+      <w:lsdException w:name="Colorful Shading"/>
+      <w:lsdException w:name="Colorful List"/>
+      <w:lsdException w:name="Colorful Grid"/>
+      <w:lsdException w:name="Light Shading Accent 1"/>
+      <w:lsdException w:name="Light List Accent 1"/>
+      <w:lsdException w:name="Light Grid Accent 1"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 1"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 1"/>
+      <w:lsdException w:name="Medium List 1 Accent 1"/>
+      <w:lsdException w:name="List Paragraph"/>
+      <w:lsdException w:name="Quote"/>
+      <w:lsdException w:name="Intense Quote"/>
+      <w:lsdException w:name="Medium List 2 Accent 1"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 1"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 1"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 1"/>
+      <w:lsdException w:name="Dark List Accent 1"/>
+      <w:lsdException w:name="Colorful Shading Accent 1"/>
+      <w:lsdException w:name="Colorful List Accent 1"/>
+      <w:lsdException w:name="Colorful Grid Accent 1"/>
+      <w:lsdException w:name="Light Shading Accent 2"/>
+      <w:lsdException w:name="Light List Accent 2"/>
+      <w:lsdException w:name="Light Grid Accent 2"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 2"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 2"/>
+      <w:lsdException w:name="Medium List 1 Accent 2"/>
+      <w:lsdException w:name="Medium List 2 Accent 2"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 2"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 2"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 2"/>
+      <w:lsdException w:name="Dark List Accent 2"/>
+      <w:lsdException w:name="Colorful Shading Accent 2"/>
+      <w:lsdException w:name="Colorful List Accent 2"/>
+      <w:lsdException w:name="Colorful Grid Accent 2"/>
+      <w:lsdException w:name="Light Shading Accent 3"/>
+      <w:lsdException w:name="Light List Accent 3"/>
+      <w:lsdException w:name="Light Grid Accent 3"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 3"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 3"/>
+      <w:lsdException w:name="Medium List 1 Accent 3"/>
+      <w:lsdException w:name="Medium List 2 Accent 3"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 3"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 3"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 3"/>
+      <w:lsdException w:name="Dark List Accent 3"/>
+      <w:lsdException w:name="Colorful Shading Accent 3"/>
+      <w:lsdException w:name="Colorful List Accent 3"/>
+      <w:lsdException w:name="Colorful Grid Accent 3"/>
+      <w:lsdException w:name="Light Shading Accent 4"/>
+      <w:lsdException w:name="Light List Accent 4"/>
+      <w:lsdException w:name="Light Grid Accent 4"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 4"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 4"/>
+      <w:lsdException w:name="Medium List 1 Accent 4"/>
+      <w:lsdException w:name="Medium List 2 Accent 4"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 4"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 4"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 4"/>
+      <w:lsdException w:name="Dark List Accent 4"/>
+      <w:lsdException w:name="Colorful Shading Accent 4"/>
+      <w:lsdException w:name="Colorful List Accent 4"/>
+      <w:lsdException w:name="Colorful Grid Accent 4"/>
+      <w:lsdException w:name="Light Shading Accent 5"/>
+      <w:lsdException w:name="Light List Accent 5"/>
+      <w:lsdException w:name="Light Grid Accent 5"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 5"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 5"/>
+      <w:lsdException w:name="Medium List 1 Accent 5"/>
+      <w:lsdException w:name="Medium List 2 Accent 5"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 5"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 5"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 5"/>
+      <w:lsdException w:name="Dark List Accent 5"/>
+      <w:lsdException w:name="Colorful Shading Accent 5"/>
+      <w:lsdException w:name="Colorful List Accent 5"/>
+      <w:lsdException w:name="Colorful Grid Accent 5"/>
+      <w:lsdException w:name="Light Shading Accent 6"/>
+      <w:lsdException w:name="Light List Accent 6"/>
+      <w:lsdException w:name="Light Grid Accent 6"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 6"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 6"/>
+      <w:lsdException w:name="Medium List 1 Accent 6"/>
+      <w:lsdException w:name="Medium List 2 Accent 6"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 6"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 6"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 6"/>
+      <w:lsdException w:name="Dark List Accent 6"/>
+      <w:lsdException w:name="Colorful Shading Accent 6"/>
+      <w:lsdException w:name="Colorful List Accent 6"/>
+      <w:lsdException w:name="Colorful Grid Accent 6"/>
+      <w:lsdException w:name="Subtle Emphasis"/>
+      <w:lsdException w:name="Intense Emphasis"/>
+      <w:lsdException w:name="Subtle Reference"/>
+      <w:lsdException w:name="Intense Reference"/>
+      <w:lsdException w:name="Book Title"/>
+      <w:lsdException w:name="TOC Heading"/>
+    </w:latentStyles>
+    <w:style w:type="paragraph" w:default="on" w:styleId="a">
+      <w:name w:val="Normal"/>
+      <wx:uiName wx:val="正文"/>
+      <w:rsid w:val="00BB620F"/>
+      <w:pPr>
+        <w:widowControl w:val="off"/>
+        <w:jc w:val="both"/>
+      </w:pPr>
+      <w:rPr>
+        <wx:font wx:val="Calibri"/>
+        <w:kern w:val="2"/>
+        <w:sz w:val="21"/>
+        <w:sz-cs w:val="22"/>
+        <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
+      </w:rPr>
+    </w:style>
+    <w:style w:type="character" w:default="on" w:styleId="a0">
+      <w:name w:val="Default Paragraph Font"/>
+      <wx:uiName wx:val="默认段落字体"/>
+    </w:style>
+    <w:style w:type="table" w:default="on" w:styleId="a1">
+      <w:name w:val="Normal Table"/>
+      <wx:uiName wx:val="普通表格"/>
+      <w:rPr>
+        <wx:font wx:val="Calibri"/>
+        <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
+      </w:rPr>
+      <w:tblPr>
+        <w:tblInd w:w="0" w:type="dxa"/>
+        <w:tblCellMar>
+          <w:top w:w="0" w:type="dxa"/>
+          <w:left w:w="108" w:type="dxa"/>
+          <w:bottom w:w="0" w:type="dxa"/>
+          <w:right w:w="108" w:type="dxa"/>
+        </w:tblCellMar>
+      </w:tblPr>
+    </w:style>
+    <w:style w:type="list" w:default="on" w:styleId="a2">
+      <w:name w:val="No List"/>
+      <wx:uiName wx:val="无列表"/>
+    </w:style>
+    <w:style w:type="table" w:styleId="a3">
+      <w:name w:val="Table Grid"/>
+      <wx:uiName wx:val="网格型"/>
+      <w:basedOn w:val="a1"/>
+      <w:rsid w:val="0017374B"/>
+      <w:rPr>
+        <wx:font wx:val="Calibri"/>
+      </w:rPr>
+      <w:tblPr>
+        <w:tblInd w:w="0" w:type="dxa"/>
+        <w:tblBorders>
+          <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+        </w:tblBorders>
+        <w:tblCellMar>
+          <w:top w:w="0" w:type="dxa"/>
+          <w:left w:w="108" w:type="dxa"/>
+          <w:bottom w:w="0" w:type="dxa"/>
+          <w:right w:w="108" w:type="dxa"/>
+        </w:tblCellMar>
+      </w:tblPr>
+    </w:style>
+  </w:styles>
+  <w:shapeDefaults>
+    <o:shapedefaults v:ext="edit" spidmax="1026"/>
+    <o:shapelayout v:ext="edit">
+      <o:idmap v:ext="edit" data="1"/>
+    </o:shapelayout>
+  </w:shapeDefaults>
+  <w:docPr>
+    <w:view w:val="print"/>
+    <w:zoom w:percent="142"/>
+    <w:doNotEmbedSystemFonts/>
+    <w:bordersDontSurroundHeader/>
+    <w:bordersDontSurroundFooter/>
+    <w:defaultTabStop w:val="420"/>
+    <w:drawingGridVerticalSpacing w:val="156"/>
+    <w:displayHorizontalDrawingGridEvery w:val="0"/>
+    <w:displayVerticalDrawingGridEvery w:val="2"/>
+    <w:punctuationKerning/>
+    <w:characterSpacingControl w:val="CompressPunctuation"/>
+    <w:optimizeForBrowser/>
+    <w:allowPNG/>
+    <w:validateAgainstSchema/>
+    <w:saveInvalidXML w:val="off"/>
+    <w:ignoreMixedContent w:val="off"/>
+    <w:alwaysShowPlaceholderText w:val="off"/>
+    <w:compat>
+      <w:spaceForUL/>
+      <w:balanceSingleByteDoubleByteWidth/>
+      <w:doNotLeaveBackslashAlone/>
+      <w:ulTrailSpace/>
+      <w:doNotExpandShiftReturn/>
+      <w:adjustLineHeightInTable/>
+      <w:breakWrappedTables/>
+      <w:snapToGridInCell/>
+      <w:wrapTextWithPunct/>
+      <w:useAsianBreakRules/>
+      <w:dontGrowAutofit/>
+      <w:useFELayout/>
+    </w:compat>
+    <wsp:rsids>
+      <wsp:rsidRoot wsp:val="00E41FF6"/>
+      <wsp:rsid wsp:val="0017374B"/>
+      <wsp:rsid wsp:val="001C4911"/>
+      <wsp:rsid wsp:val="003F3E19"/>
+      <wsp:rsid wsp:val="0043633C"/>
+      <wsp:rsid wsp:val="00481323"/>
+      <wsp:rsid wsp:val="005A39AB"/>
+      <wsp:rsid wsp:val="008B27C4"/>
+      <wsp:rsid wsp:val="00913083"/>
+      <wsp:rsid wsp:val="00A725E6"/>
+      <wsp:rsid wsp:val="00AD2DC7"/>
+      <wsp:rsid wsp:val="00BB620F"/>
+      <wsp:rsid wsp:val="00D01744"/>
+      <wsp:rsid wsp:val="00D324D1"/>
+      <wsp:rsid wsp:val="00DB3A30"/>
+      <wsp:rsid wsp:val="00DE1640"/>
+      <wsp:rsid wsp:val="00E41FF6"/>
+      <wsp:rsid wsp:val="00FA35C4"/>
+      <wsp:rsid wsp:val="00FA398E"/>
+    </wsp:rsids>
+  </w:docPr>
+  <w:body>
+    <wx:sect>
+	<#list tables as table>
+      <w:p wsp:rsidR="0017374B" wsp:rsidRPr="00481323" wsp:rsidRDefault="00AD2DC7">
+        <w:pPr>
+          <w:rPr>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+        </w:pPr>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>表名</w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:rFonts w:hint="fareast"/>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>:</w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>${table.tableName!}    </w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>注释</w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:rFonts w:hint="fareast"/>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>:</w:t>
+        </w:r>
+        <w:r wsp:rsidR="005A39AB">
+          <w:rPr>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>${table.tableComment!} </w:t>
+        </w:r>
+      </w:p>
+      <w:tbl>
+        <w:tblPr>
+          <w:tblW w:w="0" w:type="auto"/>
+          <w:tblBorders>
+            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          </w:tblBorders>
+          <w:tblLook w:val="04A0"/>
+        </w:tblPr>
+        <w:tblGrid>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1660"/>
+        </w:tblGrid>
+        <w:tr wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidTr="00FA35C4">
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>列名</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>数据类型</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>字段长度</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>允许空</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>备注</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+        </w:tr>
+		<#list table.columns as column>
+        <w:tr wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidTr="00FA35C4">
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnName!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnType!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnKey!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="001C4911">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.isNullable!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="003F3E19">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnComment!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+        </w:tr>
+	  </#list>
+      </w:tbl>
+      <w:p wsp:rsidR="00DE1640" wsp:rsidRDefault="00DE1640">
+        <w:pPr>
+          <w:rPr>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+        </w:pPr>
+      </w:p>
+      <w:p wsp:rsidR="00913083" wsp:rsidRPr="00481323" wsp:rsidRDefault="00913083">
+        <w:pPr>
+          <w:rPr>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+        </w:pPr>
+      </w:p>
+      <w:sectPr wsp:rsidR="00913083" wsp:rsidRPr="00481323" wsp:rsidSect="00BB620F">
+        <w:pgSz w:w="11906" w:h="16838"/>
+        <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
+        <w:cols w:space="425"/>
+        <w:docGrid w:type="lines" w:line-pitch="312"/>
+      </w:sectPr>
+	 </#list>
+    </wx:sect>
+		</w:body>
+		</w:wordDocument>

+ 777 - 0
src/main/resources/docV2.xml

@@ -0,0 +1,777 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?mso-application progid="Word.Document"?>
+
+<w:wordDocument
+	xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
+	xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
+	xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
+	xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
+	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+	xmlns:o="urn:schemas-microsoft-com:office:office"
+	xmlns:v="urn:schemas-microsoft-com:vml"
+	xmlns:w10="urn:schemas-microsoft-com:office:word"
+	xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
+	xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"
+	xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2"
+	xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
+	w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no"
+	xml:space="preserve">
+  <w:ignoreSubtree
+	w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2" />
+  <o:DocumentProperties>
+    <o:Author>moban</o:Author>
+    <o:LastAuthor>moban</o:LastAuthor>
+    <o:Revision>6</o:Revision>
+    <o:TotalTime>2</o:TotalTime>
+    <o:Created>2018-10-13T05:24:00Z</o:Created>
+    <o:LastSaved>2018-10-13T05:36:00Z</o:LastSaved>
+    <o:Pages>1</o:Pages>
+    <o:Words>11</o:Words>
+    <o:Characters>64</o:Characters>
+    <o:Lines>1</o:Lines>
+    <o:Paragraphs>1</o:Paragraphs>
+    <o:CharactersWithSpaces>74</o:CharactersWithSpaces>
+    <o:Version>15</o:Version>
+  </o:DocumentProperties>
+  <w:fonts>
+    <w:defaultFonts w:ascii="Calibri" w:fareast="宋体"
+	w:h-ansi="Calibri" w:cs="Times New Roman" />
+    <w:font w:name="Times New Roman">
+      <w:panose-1 w:val="02020603050405020304" />
+      <w:charset w:val="00" />
+      <w:family w:val="Roman" />
+      <w:pitch w:val="variable" />
+      <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B"
+	w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF"
+	w:csb-1="00000000" />
+    </w:font>
+    <w:font w:name="宋体">
+      <w:altName w:val="SimSun" />
+      <w:panose-1 w:val="02010600030101010101" />
+      <w:charset w:val="86" />
+      <w:family w:val="auto" />
+      <w:pitch w:val="variable" />
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000"
+	w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
+	w:csb-1="00000000" />
+    </w:font>
+    <w:font w:name="宋体">
+      <w:altName w:val="SimSun" />
+      <w:panose-1 w:val="02010600030101010101" />
+      <w:charset w:val="86" />
+      <w:family w:val="auto" />
+      <w:pitch w:val="variable" />
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000"
+	w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
+	w:csb-1="00000000" />
+    </w:font>
+    <w:font w:name="Calibri">
+      <w:panose-1 w:val="020F0502020204030204" />
+      <w:charset w:val="00" />
+      <w:family w:val="Swiss" />
+      <w:pitch w:val="variable" />
+      <w:sig w:usb-0="E0002AFF" w:usb-1="C000247B"
+	w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF"
+	w:csb-1="00000000" />
+    </w:font>
+    <w:font w:name="@宋体">
+      <w:panose-1 w:val="02010600030101010101" />
+      <w:charset w:val="86" />
+      <w:family w:val="auto" />
+      <w:pitch w:val="variable" />
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000"
+	w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
+	w:csb-1="00000000" />
+    </w:font>
+  </w:fonts>
+  <w:styles>
+    <w:versionOfBuiltInStylenames
+	w:val="7" />
+    <w:latentStyles w:defLockedState="off"
+	w:latentStyleCount="371">
+      <w:lsdException w:name="Normal" />
+      <w:lsdException w:name="heading 1" />
+      <w:lsdException w:name="heading 2" />
+      <w:lsdException w:name="heading 3" />
+      <w:lsdException w:name="heading 4" />
+      <w:lsdException w:name="heading 5" />
+      <w:lsdException w:name="heading 6" />
+      <w:lsdException w:name="heading 7" />
+      <w:lsdException w:name="heading 8" />
+      <w:lsdException w:name="heading 9" />
+      <w:lsdException w:name="caption" />
+      <w:lsdException w:name="Title" />
+      <w:lsdException w:name="Subtitle" />
+      <w:lsdException w:name="Strong" />
+      <w:lsdException w:name="Emphasis" />
+      <w:lsdException w:name="Normal Table" />
+      <w:lsdException w:name="Table Simple 1" />
+      <w:lsdException w:name="Table Simple 2" />
+      <w:lsdException w:name="Table Simple 3" />
+      <w:lsdException w:name="Table Classic 1" />
+      <w:lsdException w:name="Table Classic 2" />
+      <w:lsdException w:name="Table Classic 3" />
+      <w:lsdException w:name="Table Classic 4" />
+      <w:lsdException w:name="Table Colorful 1" />
+      <w:lsdException w:name="Table Colorful 2" />
+      <w:lsdException w:name="Table Colorful 3" />
+      <w:lsdException w:name="Table Columns 1" />
+      <w:lsdException w:name="Table Columns 2" />
+      <w:lsdException w:name="Table Columns 3" />
+      <w:lsdException w:name="Table Columns 4" />
+      <w:lsdException w:name="Table Columns 5" />
+      <w:lsdException w:name="Table Grid 1" />
+      <w:lsdException w:name="Table Grid 2" />
+      <w:lsdException w:name="Table Grid 3" />
+      <w:lsdException w:name="Table Grid 4" />
+      <w:lsdException w:name="Table Grid 5" />
+      <w:lsdException w:name="Table Grid 6" />
+      <w:lsdException w:name="Table Grid 7" />
+      <w:lsdException w:name="Table Grid 8" />
+      <w:lsdException w:name="Table List 1" />
+      <w:lsdException w:name="Table List 2" />
+      <w:lsdException w:name="Table List 3" />
+      <w:lsdException w:name="Table List 4" />
+      <w:lsdException w:name="Table List 5" />
+      <w:lsdException w:name="Table List 6" />
+      <w:lsdException w:name="Table List 7" />
+      <w:lsdException w:name="Table List 8" />
+      <w:lsdException w:name="Table 3D effects 1" />
+      <w:lsdException w:name="Table 3D effects 2" />
+      <w:lsdException w:name="Table 3D effects 3" />
+      <w:lsdException w:name="Table Contemporary" />
+      <w:lsdException w:name="Table Elegant" />
+      <w:lsdException w:name="Table Professional" />
+      <w:lsdException w:name="Table Subtle 1" />
+      <w:lsdException w:name="Table Subtle 2" />
+      <w:lsdException w:name="Table Web 1" />
+      <w:lsdException w:name="Table Web 2" />
+      <w:lsdException w:name="Table Web 3" />
+      <w:lsdException w:name="Table Theme" />
+      <w:lsdException w:name="No Spacing" />
+      <w:lsdException w:name="Light Shading" />
+      <w:lsdException w:name="Light List" />
+      <w:lsdException w:name="Light Grid" />
+      <w:lsdException w:name="Medium Shading 1" />
+      <w:lsdException w:name="Medium Shading 2" />
+      <w:lsdException w:name="Medium List 1" />
+      <w:lsdException w:name="Medium List 2" />
+      <w:lsdException w:name="Medium Grid 1" />
+      <w:lsdException w:name="Medium Grid 2" />
+      <w:lsdException w:name="Medium Grid 3" />
+      <w:lsdException w:name="Dark List" />
+      <w:lsdException w:name="Colorful Shading" />
+      <w:lsdException w:name="Colorful List" />
+      <w:lsdException w:name="Colorful Grid" />
+      <w:lsdException w:name="Light Shading Accent 1" />
+      <w:lsdException w:name="Light List Accent 1" />
+      <w:lsdException w:name="Light Grid Accent 1" />
+      <w:lsdException w:name="Medium Shading 1 Accent 1" />
+      <w:lsdException w:name="Medium Shading 2 Accent 1" />
+      <w:lsdException w:name="Medium List 1 Accent 1" />
+      <w:lsdException w:name="List Paragraph" />
+      <w:lsdException w:name="Quote" />
+      <w:lsdException w:name="Intense Quote" />
+      <w:lsdException w:name="Medium List 2 Accent 1" />
+      <w:lsdException w:name="Medium Grid 1 Accent 1" />
+      <w:lsdException w:name="Medium Grid 2 Accent 1" />
+      <w:lsdException w:name="Medium Grid 3 Accent 1" />
+      <w:lsdException w:name="Dark List Accent 1" />
+      <w:lsdException w:name="Colorful Shading Accent 1" />
+      <w:lsdException w:name="Colorful List Accent 1" />
+      <w:lsdException w:name="Colorful Grid Accent 1" />
+      <w:lsdException w:name="Light Shading Accent 2" />
+      <w:lsdException w:name="Light List Accent 2" />
+      <w:lsdException w:name="Light Grid Accent 2" />
+      <w:lsdException w:name="Medium Shading 1 Accent 2" />
+      <w:lsdException w:name="Medium Shading 2 Accent 2" />
+      <w:lsdException w:name="Medium List 1 Accent 2" />
+      <w:lsdException w:name="Medium List 2 Accent 2" />
+      <w:lsdException w:name="Medium Grid 1 Accent 2" />
+      <w:lsdException w:name="Medium Grid 2 Accent 2" />
+      <w:lsdException w:name="Medium Grid 3 Accent 2" />
+      <w:lsdException w:name="Dark List Accent 2" />
+      <w:lsdException w:name="Colorful Shading Accent 2" />
+      <w:lsdException w:name="Colorful List Accent 2" />
+      <w:lsdException w:name="Colorful Grid Accent 2" />
+      <w:lsdException w:name="Light Shading Accent 3" />
+      <w:lsdException w:name="Light List Accent 3" />
+      <w:lsdException w:name="Light Grid Accent 3" />
+      <w:lsdException w:name="Medium Shading 1 Accent 3" />
+      <w:lsdException w:name="Medium Shading 2 Accent 3" />
+      <w:lsdException w:name="Medium List 1 Accent 3" />
+      <w:lsdException w:name="Medium List 2 Accent 3" />
+      <w:lsdException w:name="Medium Grid 1 Accent 3" />
+      <w:lsdException w:name="Medium Grid 2 Accent 3" />
+      <w:lsdException w:name="Medium Grid 3 Accent 3" />
+      <w:lsdException w:name="Dark List Accent 3" />
+      <w:lsdException w:name="Colorful Shading Accent 3" />
+      <w:lsdException w:name="Colorful List Accent 3" />
+      <w:lsdException w:name="Colorful Grid Accent 3" />
+      <w:lsdException w:name="Light Shading Accent 4" />
+      <w:lsdException w:name="Light List Accent 4" />
+      <w:lsdException w:name="Light Grid Accent 4" />
+      <w:lsdException w:name="Medium Shading 1 Accent 4" />
+      <w:lsdException w:name="Medium Shading 2 Accent 4" />
+      <w:lsdException w:name="Medium List 1 Accent 4" />
+      <w:lsdException w:name="Medium List 2 Accent 4" />
+      <w:lsdException w:name="Medium Grid 1 Accent 4" />
+      <w:lsdException w:name="Medium Grid 2 Accent 4" />
+      <w:lsdException w:name="Medium Grid 3 Accent 4" />
+      <w:lsdException w:name="Dark List Accent 4" />
+      <w:lsdException w:name="Colorful Shading Accent 4" />
+      <w:lsdException w:name="Colorful List Accent 4" />
+      <w:lsdException w:name="Colorful Grid Accent 4" />
+      <w:lsdException w:name="Light Shading Accent 5" />
+      <w:lsdException w:name="Light List Accent 5" />
+      <w:lsdException w:name="Light Grid Accent 5" />
+      <w:lsdException w:name="Medium Shading 1 Accent 5" />
+      <w:lsdException w:name="Medium Shading 2 Accent 5" />
+      <w:lsdException w:name="Medium List 1 Accent 5" />
+      <w:lsdException w:name="Medium List 2 Accent 5" />
+      <w:lsdException w:name="Medium Grid 1 Accent 5" />
+      <w:lsdException w:name="Medium Grid 2 Accent 5" />
+      <w:lsdException w:name="Medium Grid 3 Accent 5" />
+      <w:lsdException w:name="Dark List Accent 5" />
+      <w:lsdException w:name="Colorful Shading Accent 5" />
+      <w:lsdException w:name="Colorful List Accent 5" />
+      <w:lsdException w:name="Colorful Grid Accent 5" />
+      <w:lsdException w:name="Light Shading Accent 6" />
+      <w:lsdException w:name="Light List Accent 6" />
+      <w:lsdException w:name="Light Grid Accent 6" />
+      <w:lsdException w:name="Medium Shading 1 Accent 6" />
+      <w:lsdException w:name="Medium Shading 2 Accent 6" />
+      <w:lsdException w:name="Medium List 1 Accent 6" />
+      <w:lsdException w:name="Medium List 2 Accent 6" />
+      <w:lsdException w:name="Medium Grid 1 Accent 6" />
+      <w:lsdException w:name="Medium Grid 2 Accent 6" />
+      <w:lsdException w:name="Medium Grid 3 Accent 6" />
+      <w:lsdException w:name="Dark List Accent 6" />
+      <w:lsdException w:name="Colorful Shading Accent 6" />
+      <w:lsdException w:name="Colorful List Accent 6" />
+      <w:lsdException w:name="Colorful Grid Accent 6" />
+      <w:lsdException w:name="Subtle Emphasis" />
+      <w:lsdException w:name="Intense Emphasis" />
+      <w:lsdException w:name="Subtle Reference" />
+      <w:lsdException w:name="Intense Reference" />
+      <w:lsdException w:name="Book Title" />
+      <w:lsdException w:name="TOC Heading" />
+    </w:latentStyles>
+    <w:style w:type="paragraph" w:default="on" w:styleId="a">
+      <w:name w:val="Normal" />
+      <wx:uiName wx:val="正文" />
+      <w:rsid w:val="00BB620F" />
+      <w:pPr>
+        <w:widowControl w:val="off" />
+        <w:jc w:val="both" />
+      </w:pPr>
+      <w:rPr>
+        <wx:font wx:val="Calibri" />
+        <w:kern w:val="2" />
+        <w:sz w:val="21" />
+        <w:sz-cs w:val="22" />
+        <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA" />
+      </w:rPr>
+    </w:style>
+    <w:style w:type="character" w:default="on" w:styleId="a0">
+      <w:name w:val="Default Paragraph Font" />
+      <wx:uiName wx:val="默认段落字体" />
+    </w:style>
+    <w:style w:type="table" w:default="on" w:styleId="a1">
+      <w:name w:val="Normal Table" />
+      <wx:uiName wx:val="普通表格" />
+      <w:rPr>
+        <wx:font wx:val="Calibri" />
+        <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA" />
+      </w:rPr>
+      <w:tblPr>
+        <w:tblInd w:w="0" w:type="dxa" />
+        <w:tblCellMar>
+          <w:top w:w="0" w:type="dxa" />
+          <w:left w:w="108" w:type="dxa" />
+          <w:bottom w:w="0" w:type="dxa" />
+          <w:right w:w="108" w:type="dxa" />
+        </w:tblCellMar>
+      </w:tblPr>
+    </w:style>
+    <w:style w:type="list" w:default="on" w:styleId="a2">
+      <w:name w:val="No List" />
+      <wx:uiName wx:val="无列表" />
+    </w:style>
+    <w:style w:type="table" w:styleId="a3">
+      <w:name w:val="Table Grid" />
+      <wx:uiName wx:val="网格型" />
+      <w:basedOn w:val="a1" />
+      <w:rsid w:val="0017374B" />
+      <w:rPr>
+        <wx:font wx:val="Calibri" />
+      </w:rPr>
+      <w:tblPr>
+        <w:tblInd w:w="0" w:type="dxa" />
+        <w:tblBorders>
+          <w:top w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+          <w:left w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+          <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+          <w:right w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+          <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+          <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+        </w:tblBorders>
+        <w:tblCellMar>
+          <w:top w:w="0" w:type="dxa" />
+          <w:left w:w="108" w:type="dxa" />
+          <w:bottom w:w="0" w:type="dxa" />
+          <w:right w:w="108" w:type="dxa" />
+        </w:tblCellMar>
+      </w:tblPr>
+    </w:style>
+  </w:styles>
+  <w:shapeDefaults>
+    <o:shapedefaults v:ext="edit" spidmax="1026" />
+    <o:shapelayout v:ext="edit">
+      <o:idmap v:ext="edit" data="1" />
+    </o:shapelayout>
+  </w:shapeDefaults>
+  <w:docPr>
+    <w:view w:val="print" />
+    <w:zoom w:percent="142" />
+    <w:doNotEmbedSystemFonts />
+    <w:bordersDontSurroundHeader />
+    <w:bordersDontSurroundFooter />
+    <w:defaultTabStop w:val="420" />
+    <w:drawingGridVerticalSpacing
+	w:val="156" />
+    <w:displayHorizontalDrawingGridEvery
+	w:val="0" />
+    <w:displayVerticalDrawingGridEvery
+	w:val="2" />
+    <w:punctuationKerning />
+    <w:characterSpacingControl
+	w:val="CompressPunctuation" />
+    <w:optimizeForBrowser />
+    <w:allowPNG />
+    <w:validateAgainstSchema />
+    <w:saveInvalidXML w:val="off" />
+    <w:ignoreMixedContent w:val="off" />
+    <w:alwaysShowPlaceholderText
+	w:val="off" />
+    <w:compat>
+      <w:spaceForUL />
+      <w:balanceSingleByteDoubleByteWidth />
+      <w:doNotLeaveBackslashAlone />
+      <w:ulTrailSpace />
+      <w:doNotExpandShiftReturn />
+      <w:adjustLineHeightInTable />
+      <w:breakWrappedTables />
+      <w:snapToGridInCell />
+      <w:wrapTextWithPunct />
+      <w:useAsianBreakRules />
+      <w:dontGrowAutofit />
+      <w:useFELayout />
+    </w:compat>
+    <wsp:rsids>
+      <wsp:rsidRoot wsp:val="00E41FF6" />
+      <wsp:rsid wsp:val="0017374B" />
+      <wsp:rsid wsp:val="001C4911" />
+      <wsp:rsid wsp:val="003F3E19" />
+      <wsp:rsid wsp:val="0043633C" />
+      <wsp:rsid wsp:val="00481323" />
+      <wsp:rsid wsp:val="005A39AB" />
+      <wsp:rsid wsp:val="008B27C4" />
+      <wsp:rsid wsp:val="00913083" />
+      <wsp:rsid wsp:val="00A725E6" />
+      <wsp:rsid wsp:val="00AD2DC7" />
+      <wsp:rsid wsp:val="00BB620F" />
+      <wsp:rsid wsp:val="00D01744" />
+      <wsp:rsid wsp:val="00D324D1" />
+      <wsp:rsid wsp:val="00DB3A30" />
+      <wsp:rsid wsp:val="00DE1640" />
+      <wsp:rsid wsp:val="00E41FF6" />
+      <wsp:rsid wsp:val="00FA35C4" />
+      <wsp:rsid wsp:val="00FA398E" />
+    </wsp:rsids>
+  </w:docPr>
+  <w:body>
+    <wx:sect>
+	<#list tables as table>
+      <w:p wsp:rsidR="0017374B" wsp:rsidRPr="00481323"
+	wsp:rsidRDefault="00AD2DC7">
+        <w:pPr>
+          <w:rPr>
+            <w:b />
+            <w:sz w:val="18" />
+            <w:sz-cs w:val="18" />
+          </w:rPr>
+        </w:pPr>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <wx:font wx:val="宋体" />
+            <w:b />
+            <w:sz w:val="18" />
+            <w:sz-cs w:val="18" />
+          </w:rPr>
+          <w:t></w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:b />
+            <w:sz w:val="18" />
+            <w:sz-cs w:val="18" />
+          </w:rPr>
+          <w:t>${table.tableName!}</w:t>
+        </w:r>
+        <w:r wsp:rsidR="005A39AB">
+          <w:rPr>
+            <w:b />
+            <w:sz w:val="18" />
+            <w:sz-cs w:val="18" />
+          </w:rPr>
+          <w:t>(${table.tableComment!})</w:t>
+        </w:r>
+      </w:p>
+      <w:tbl>
+        <w:tblPr>
+          <w:tblW w:w="0" w:type="auto" />
+          <w:tblBorders>
+            <w:top w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+            <w:left w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+            <w:right w:val="single" w:sz="4" wx:bdrwidth="10"
+	w:space="0" w:color="auto" />
+            <w:insideH w:val="single" w:sz="4"
+	wx:bdrwidth="10" w:space="0" w:color="auto" />
+            <w:insideV w:val="single" w:sz="4"
+	wx:bdrwidth="10" w:space="0" w:color="auto" />
+          </w:tblBorders>
+          <w:tblLook w:val="04A0" />
+        </w:tblPr>
+        <w:tblGrid>
+          <w:gridCol w:w="1659" />
+          <w:gridCol w:w="1659" />
+          <w:gridCol w:w="1659" />
+          <w:gridCol w:w="1659" />
+          <w:gridCol w:w="1660" />
+        </w:tblGrid>
+        <w:tr wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidTr="00FA35C4">
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <wx:font wx:val="宋体" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>英文名</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <wx:font wx:val="宋体" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>类型</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+            <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <wx:font wx:val="宋体" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>中文名</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <wx:font wx:val="宋体" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>主键</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <wx:font wx:val="宋体" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>空否</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+           <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <wx:font wx:val="宋体" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>取值说明</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+       </w:tr>
+		<#list table.columns as column>
+        <w:tr wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidTr="00FA35C4">
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="auto" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:rFonts w:hint="fareast" />
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>${column.columnName!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+         <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="auto" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>${column.columnType!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+           <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="auto" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="003F3E19">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>${column.columnComment!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>       
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="auto" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>${column.columnKey!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="auto" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="001C4911">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>${column.isNullable!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+         <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa" />
+              <w:shd w:val="clear" w:color="auto" w:fill="auto" />
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4"
+	wsp:rsidRDefault="003F3E19">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18" />
+                  <w:sz-cs w:val="18" />
+                </w:rPr>
+                <w:t>${column.defaultValue!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>       
+        </w:tr>
+	  </#list>
+      </w:tbl>
+      <w:p wsp:rsidR="00DE1640" wsp:rsidRDefault="00DE1640">
+        <w:pPr>
+          <w:rPr>
+            <w:sz w:val="18" />
+            <w:sz-cs w:val="18" />
+          </w:rPr>
+        </w:pPr>
+      </w:p>
+      <w:p wsp:rsidR="00913083" wsp:rsidRPr="00481323"
+	wsp:rsidRDefault="00913083">
+        <w:pPr>
+          <w:rPr>
+            <w:sz w:val="18" />
+            <w:sz-cs w:val="18" />
+          </w:rPr>
+        </w:pPr>
+      </w:p>
+      <w:sectPr wsp:rsidR="00913083" wsp:rsidRPr="00481323"
+	wsp:rsidSect="00BB620F">
+        <w:pgSz w:w="11906" w:h="16838" />
+        <w:pgMar w:top="1440" w:right="1800" w:bottom="1440"
+	w:left="1800" w:header="851" w:footer="992" w:gutter="0" />
+        <w:cols w:space="425" />
+        <w:docGrid w:type="lines" w:line-pitch="312" />
+      </w:sectPr>
+	 </#list>
+    </wx:sect>
+  </w:body>
+</w:wordDocument>

+ 699 - 0
src/main/resources/oldDoc.xml

@@ -0,0 +1,699 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?mso-application progid="Word.Document"?>
+
+<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
+  <w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
+  <o:DocumentProperties>
+    <o:Author>moban</o:Author>
+    <o:LastAuthor>moban</o:LastAuthor>
+    <o:Revision>6</o:Revision>
+    <o:TotalTime>2</o:TotalTime>
+    <o:Created>2018-10-13T05:24:00Z</o:Created>
+    <o:LastSaved>2018-10-13T05:36:00Z</o:LastSaved>
+    <o:Pages>1</o:Pages>
+    <o:Words>11</o:Words>
+    <o:Characters>64</o:Characters>
+    <o:Lines>1</o:Lines>
+    <o:Paragraphs>1</o:Paragraphs>
+    <o:CharactersWithSpaces>74</o:CharactersWithSpaces>
+    <o:Version>15</o:Version>
+  </o:DocumentProperties>
+  <w:fonts>
+    <w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
+    <w:font w:name="Times New Roman">
+      <w:panose-1 w:val="02020603050405020304"/>
+      <w:charset w:val="00"/>
+      <w:family w:val="Roman"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="宋体">
+      <w:altName w:val="SimSun"/>
+      <w:panose-1 w:val="02010600030101010101"/>
+      <w:charset w:val="86"/>
+      <w:family w:val="auto"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="宋体">
+      <w:altName w:val="SimSun"/>
+      <w:panose-1 w:val="02010600030101010101"/>
+      <w:charset w:val="86"/>
+      <w:family w:val="auto"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="Calibri">
+      <w:panose-1 w:val="020F0502020204030204"/>
+      <w:charset w:val="00"/>
+      <w:family w:val="Swiss"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="E0002AFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF" w:csb-1="00000000"/>
+    </w:font>
+    <w:font w:name="@宋体">
+      <w:panose-1 w:val="02010600030101010101"/>
+      <w:charset w:val="86"/>
+      <w:family w:val="auto"/>
+      <w:pitch w:val="variable"/>
+      <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
+    </w:font>
+  </w:fonts>
+  <w:styles>
+    <w:versionOfBuiltInStylenames w:val="7"/>
+    <w:latentStyles w:defLockedState="off" w:latentStyleCount="371">
+      <w:lsdException w:name="Normal"/>
+      <w:lsdException w:name="heading 1"/>
+      <w:lsdException w:name="heading 2"/>
+      <w:lsdException w:name="heading 3"/>
+      <w:lsdException w:name="heading 4"/>
+      <w:lsdException w:name="heading 5"/>
+      <w:lsdException w:name="heading 6"/>
+      <w:lsdException w:name="heading 7"/>
+      <w:lsdException w:name="heading 8"/>
+      <w:lsdException w:name="heading 9"/>
+      <w:lsdException w:name="caption"/>
+      <w:lsdException w:name="Title"/>
+      <w:lsdException w:name="Subtitle"/>
+      <w:lsdException w:name="Strong"/>
+      <w:lsdException w:name="Emphasis"/>
+      <w:lsdException w:name="Normal Table"/>
+      <w:lsdException w:name="Table Simple 1"/>
+      <w:lsdException w:name="Table Simple 2"/>
+      <w:lsdException w:name="Table Simple 3"/>
+      <w:lsdException w:name="Table Classic 1"/>
+      <w:lsdException w:name="Table Classic 2"/>
+      <w:lsdException w:name="Table Classic 3"/>
+      <w:lsdException w:name="Table Classic 4"/>
+      <w:lsdException w:name="Table Colorful 1"/>
+      <w:lsdException w:name="Table Colorful 2"/>
+      <w:lsdException w:name="Table Colorful 3"/>
+      <w:lsdException w:name="Table Columns 1"/>
+      <w:lsdException w:name="Table Columns 2"/>
+      <w:lsdException w:name="Table Columns 3"/>
+      <w:lsdException w:name="Table Columns 4"/>
+      <w:lsdException w:name="Table Columns 5"/>
+      <w:lsdException w:name="Table Grid 1"/>
+      <w:lsdException w:name="Table Grid 2"/>
+      <w:lsdException w:name="Table Grid 3"/>
+      <w:lsdException w:name="Table Grid 4"/>
+      <w:lsdException w:name="Table Grid 5"/>
+      <w:lsdException w:name="Table Grid 6"/>
+      <w:lsdException w:name="Table Grid 7"/>
+      <w:lsdException w:name="Table Grid 8"/>
+      <w:lsdException w:name="Table List 1"/>
+      <w:lsdException w:name="Table List 2"/>
+      <w:lsdException w:name="Table List 3"/>
+      <w:lsdException w:name="Table List 4"/>
+      <w:lsdException w:name="Table List 5"/>
+      <w:lsdException w:name="Table List 6"/>
+      <w:lsdException w:name="Table List 7"/>
+      <w:lsdException w:name="Table List 8"/>
+      <w:lsdException w:name="Table 3D effects 1"/>
+      <w:lsdException w:name="Table 3D effects 2"/>
+      <w:lsdException w:name="Table 3D effects 3"/>
+      <w:lsdException w:name="Table Contemporary"/>
+      <w:lsdException w:name="Table Elegant"/>
+      <w:lsdException w:name="Table Professional"/>
+      <w:lsdException w:name="Table Subtle 1"/>
+      <w:lsdException w:name="Table Subtle 2"/>
+      <w:lsdException w:name="Table Web 1"/>
+      <w:lsdException w:name="Table Web 2"/>
+      <w:lsdException w:name="Table Web 3"/>
+      <w:lsdException w:name="Table Theme"/>
+      <w:lsdException w:name="No Spacing"/>
+      <w:lsdException w:name="Light Shading"/>
+      <w:lsdException w:name="Light List"/>
+      <w:lsdException w:name="Light Grid"/>
+      <w:lsdException w:name="Medium Shading 1"/>
+      <w:lsdException w:name="Medium Shading 2"/>
+      <w:lsdException w:name="Medium List 1"/>
+      <w:lsdException w:name="Medium List 2"/>
+      <w:lsdException w:name="Medium Grid 1"/>
+      <w:lsdException w:name="Medium Grid 2"/>
+      <w:lsdException w:name="Medium Grid 3"/>
+      <w:lsdException w:name="Dark List"/>
+      <w:lsdException w:name="Colorful Shading"/>
+      <w:lsdException w:name="Colorful List"/>
+      <w:lsdException w:name="Colorful Grid"/>
+      <w:lsdException w:name="Light Shading Accent 1"/>
+      <w:lsdException w:name="Light List Accent 1"/>
+      <w:lsdException w:name="Light Grid Accent 1"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 1"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 1"/>
+      <w:lsdException w:name="Medium List 1 Accent 1"/>
+      <w:lsdException w:name="List Paragraph"/>
+      <w:lsdException w:name="Quote"/>
+      <w:lsdException w:name="Intense Quote"/>
+      <w:lsdException w:name="Medium List 2 Accent 1"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 1"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 1"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 1"/>
+      <w:lsdException w:name="Dark List Accent 1"/>
+      <w:lsdException w:name="Colorful Shading Accent 1"/>
+      <w:lsdException w:name="Colorful List Accent 1"/>
+      <w:lsdException w:name="Colorful Grid Accent 1"/>
+      <w:lsdException w:name="Light Shading Accent 2"/>
+      <w:lsdException w:name="Light List Accent 2"/>
+      <w:lsdException w:name="Light Grid Accent 2"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 2"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 2"/>
+      <w:lsdException w:name="Medium List 1 Accent 2"/>
+      <w:lsdException w:name="Medium List 2 Accent 2"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 2"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 2"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 2"/>
+      <w:lsdException w:name="Dark List Accent 2"/>
+      <w:lsdException w:name="Colorful Shading Accent 2"/>
+      <w:lsdException w:name="Colorful List Accent 2"/>
+      <w:lsdException w:name="Colorful Grid Accent 2"/>
+      <w:lsdException w:name="Light Shading Accent 3"/>
+      <w:lsdException w:name="Light List Accent 3"/>
+      <w:lsdException w:name="Light Grid Accent 3"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 3"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 3"/>
+      <w:lsdException w:name="Medium List 1 Accent 3"/>
+      <w:lsdException w:name="Medium List 2 Accent 3"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 3"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 3"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 3"/>
+      <w:lsdException w:name="Dark List Accent 3"/>
+      <w:lsdException w:name="Colorful Shading Accent 3"/>
+      <w:lsdException w:name="Colorful List Accent 3"/>
+      <w:lsdException w:name="Colorful Grid Accent 3"/>
+      <w:lsdException w:name="Light Shading Accent 4"/>
+      <w:lsdException w:name="Light List Accent 4"/>
+      <w:lsdException w:name="Light Grid Accent 4"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 4"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 4"/>
+      <w:lsdException w:name="Medium List 1 Accent 4"/>
+      <w:lsdException w:name="Medium List 2 Accent 4"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 4"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 4"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 4"/>
+      <w:lsdException w:name="Dark List Accent 4"/>
+      <w:lsdException w:name="Colorful Shading Accent 4"/>
+      <w:lsdException w:name="Colorful List Accent 4"/>
+      <w:lsdException w:name="Colorful Grid Accent 4"/>
+      <w:lsdException w:name="Light Shading Accent 5"/>
+      <w:lsdException w:name="Light List Accent 5"/>
+      <w:lsdException w:name="Light Grid Accent 5"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 5"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 5"/>
+      <w:lsdException w:name="Medium List 1 Accent 5"/>
+      <w:lsdException w:name="Medium List 2 Accent 5"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 5"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 5"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 5"/>
+      <w:lsdException w:name="Dark List Accent 5"/>
+      <w:lsdException w:name="Colorful Shading Accent 5"/>
+      <w:lsdException w:name="Colorful List Accent 5"/>
+      <w:lsdException w:name="Colorful Grid Accent 5"/>
+      <w:lsdException w:name="Light Shading Accent 6"/>
+      <w:lsdException w:name="Light List Accent 6"/>
+      <w:lsdException w:name="Light Grid Accent 6"/>
+      <w:lsdException w:name="Medium Shading 1 Accent 6"/>
+      <w:lsdException w:name="Medium Shading 2 Accent 6"/>
+      <w:lsdException w:name="Medium List 1 Accent 6"/>
+      <w:lsdException w:name="Medium List 2 Accent 6"/>
+      <w:lsdException w:name="Medium Grid 1 Accent 6"/>
+      <w:lsdException w:name="Medium Grid 2 Accent 6"/>
+      <w:lsdException w:name="Medium Grid 3 Accent 6"/>
+      <w:lsdException w:name="Dark List Accent 6"/>
+      <w:lsdException w:name="Colorful Shading Accent 6"/>
+      <w:lsdException w:name="Colorful List Accent 6"/>
+      <w:lsdException w:name="Colorful Grid Accent 6"/>
+      <w:lsdException w:name="Subtle Emphasis"/>
+      <w:lsdException w:name="Intense Emphasis"/>
+      <w:lsdException w:name="Subtle Reference"/>
+      <w:lsdException w:name="Intense Reference"/>
+      <w:lsdException w:name="Book Title"/>
+      <w:lsdException w:name="TOC Heading"/>
+    </w:latentStyles>
+    <w:style w:type="paragraph" w:default="on" w:styleId="a">
+      <w:name w:val="Normal"/>
+      <wx:uiName wx:val="正文"/>
+      <w:rsid w:val="00BB620F"/>
+      <w:pPr>
+        <w:widowControl w:val="off"/>
+        <w:jc w:val="both"/>
+      </w:pPr>
+      <w:rPr>
+        <wx:font wx:val="Calibri"/>
+        <w:kern w:val="2"/>
+        <w:sz w:val="21"/>
+        <w:sz-cs w:val="22"/>
+        <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
+      </w:rPr>
+    </w:style>
+    <w:style w:type="character" w:default="on" w:styleId="a0">
+      <w:name w:val="Default Paragraph Font"/>
+      <wx:uiName wx:val="默认段落字体"/>
+    </w:style>
+    <w:style w:type="table" w:default="on" w:styleId="a1">
+      <w:name w:val="Normal Table"/>
+      <wx:uiName wx:val="普通表格"/>
+      <w:rPr>
+        <wx:font wx:val="Calibri"/>
+        <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
+      </w:rPr>
+      <w:tblPr>
+        <w:tblInd w:w="0" w:type="dxa"/>
+        <w:tblCellMar>
+          <w:top w:w="0" w:type="dxa"/>
+          <w:left w:w="108" w:type="dxa"/>
+          <w:bottom w:w="0" w:type="dxa"/>
+          <w:right w:w="108" w:type="dxa"/>
+        </w:tblCellMar>
+      </w:tblPr>
+    </w:style>
+    <w:style w:type="list" w:default="on" w:styleId="a2">
+      <w:name w:val="No List"/>
+      <wx:uiName wx:val="无列表"/>
+    </w:style>
+    <w:style w:type="table" w:styleId="a3">
+      <w:name w:val="Table Grid"/>
+      <wx:uiName wx:val="网格型"/>
+      <w:basedOn w:val="a1"/>
+      <w:rsid w:val="0017374B"/>
+      <w:rPr>
+        <wx:font wx:val="Calibri"/>
+      </w:rPr>
+      <w:tblPr>
+        <w:tblInd w:w="0" w:type="dxa"/>
+        <w:tblBorders>
+          <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+        </w:tblBorders>
+        <w:tblCellMar>
+          <w:top w:w="0" w:type="dxa"/>
+          <w:left w:w="108" w:type="dxa"/>
+          <w:bottom w:w="0" w:type="dxa"/>
+          <w:right w:w="108" w:type="dxa"/>
+        </w:tblCellMar>
+      </w:tblPr>
+    </w:style>
+  </w:styles>
+  <w:shapeDefaults>
+    <o:shapedefaults v:ext="edit" spidmax="1026"/>
+    <o:shapelayout v:ext="edit">
+      <o:idmap v:ext="edit" data="1"/>
+    </o:shapelayout>
+  </w:shapeDefaults>
+  <w:docPr>
+    <w:view w:val="print"/>
+    <w:zoom w:percent="142"/>
+    <w:doNotEmbedSystemFonts/>
+    <w:bordersDontSurroundHeader/>
+    <w:bordersDontSurroundFooter/>
+    <w:defaultTabStop w:val="420"/>
+    <w:drawingGridVerticalSpacing w:val="156"/>
+    <w:displayHorizontalDrawingGridEvery w:val="0"/>
+    <w:displayVerticalDrawingGridEvery w:val="2"/>
+    <w:punctuationKerning/>
+    <w:characterSpacingControl w:val="CompressPunctuation"/>
+    <w:optimizeForBrowser/>
+    <w:allowPNG/>
+    <w:validateAgainstSchema/>
+    <w:saveInvalidXML w:val="off"/>
+    <w:ignoreMixedContent w:val="off"/>
+    <w:alwaysShowPlaceholderText w:val="off"/>
+    <w:compat>
+      <w:spaceForUL/>
+      <w:balanceSingleByteDoubleByteWidth/>
+      <w:doNotLeaveBackslashAlone/>
+      <w:ulTrailSpace/>
+      <w:doNotExpandShiftReturn/>
+      <w:adjustLineHeightInTable/>
+      <w:breakWrappedTables/>
+      <w:snapToGridInCell/>
+      <w:wrapTextWithPunct/>
+      <w:useAsianBreakRules/>
+      <w:dontGrowAutofit/>
+      <w:useFELayout/>
+    </w:compat>
+    <wsp:rsids>
+      <wsp:rsidRoot wsp:val="00E41FF6"/>
+      <wsp:rsid wsp:val="0017374B"/>
+      <wsp:rsid wsp:val="001C4911"/>
+      <wsp:rsid wsp:val="003F3E19"/>
+      <wsp:rsid wsp:val="0043633C"/>
+      <wsp:rsid wsp:val="00481323"/>
+      <wsp:rsid wsp:val="005A39AB"/>
+      <wsp:rsid wsp:val="008B27C4"/>
+      <wsp:rsid wsp:val="00913083"/>
+      <wsp:rsid wsp:val="00A725E6"/>
+      <wsp:rsid wsp:val="00AD2DC7"/>
+      <wsp:rsid wsp:val="00BB620F"/>
+      <wsp:rsid wsp:val="00D01744"/>
+      <wsp:rsid wsp:val="00D324D1"/>
+      <wsp:rsid wsp:val="00DB3A30"/>
+      <wsp:rsid wsp:val="00DE1640"/>
+      <wsp:rsid wsp:val="00E41FF6"/>
+      <wsp:rsid wsp:val="00FA35C4"/>
+      <wsp:rsid wsp:val="00FA398E"/>
+    </wsp:rsids>
+  </w:docPr>
+  <w:body>
+    <wx:sect>
+	<#list tables as table>
+      <w:p wsp:rsidR="0017374B" wsp:rsidRPr="00481323" wsp:rsidRDefault="00AD2DC7">
+        <w:pPr>
+          <w:rPr>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+        </w:pPr>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>表名</w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:rFonts w:hint="fareast"/>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>:</w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>${table.tableName!}    </w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>注释</w:t>
+        </w:r>
+        <w:r wsp:rsidRPr="00481323">
+          <w:rPr>
+            <w:rFonts w:hint="fareast"/>
+            <wx:font wx:val="宋体"/>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>:</w:t>
+        </w:r>
+        <w:r wsp:rsidR="005A39AB">
+          <w:rPr>
+            <w:b/>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+          <w:t>${table.tableComment!} </w:t>
+        </w:r>
+      </w:p>
+      <w:tbl>
+        <w:tblPr>
+          <w:tblW w:w="0" w:type="auto"/>
+          <w:tblBorders>
+            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+          </w:tblBorders>
+          <w:tblLook w:val="04A0"/>
+        </w:tblPr>
+        <w:tblGrid>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1659"/>
+          <w:gridCol w:w="1660"/>
+        </w:tblGrid>
+        <w:tr wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidTr="00FA35C4">
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>列名</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>数据类型</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>字段长度</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>允许空</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="AEAAAA"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00DE1640">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r wsp:rsidRPr="00FA35C4">
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <wx:font wx:val="宋体"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>备注</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+        </w:tr>
+		<#list table.columns as column>
+        <w:tr wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidTr="00FA35C4">
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:rFonts w:hint="fareast"/>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnName!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnType!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="00D01744">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnKey!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1659" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="001C4911">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.isNullable!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+          <w:tc>
+            <w:tcPr>
+              <w:tcW w:w="1660" w:type="dxa"/>
+              <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+            </w:tcPr>
+            <w:p wsp:rsidR="00DE1640" wsp:rsidRPr="00FA35C4" wsp:rsidRDefault="003F3E19">
+              <w:pPr>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:sz w:val="18"/>
+                  <w:sz-cs w:val="18"/>
+                </w:rPr>
+                <w:t>${column.columnComment!}</w:t>
+              </w:r>
+            </w:p>
+          </w:tc>
+        </w:tr>
+	  </#list>
+      </w:tbl>
+      <w:p wsp:rsidR="00DE1640" wsp:rsidRDefault="00DE1640">
+        <w:pPr>
+          <w:rPr>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+        </w:pPr>
+      </w:p>
+      <w:p wsp:rsidR="00913083" wsp:rsidRPr="00481323" wsp:rsidRDefault="00913083">
+        <w:pPr>
+          <w:rPr>
+            <w:sz w:val="18"/>
+            <w:sz-cs w:val="18"/>
+          </w:rPr>
+        </w:pPr>
+      </w:p>
+      <w:sectPr wsp:rsidR="00913083" wsp:rsidRPr="00481323" wsp:rsidSect="00BB620F">
+        <w:pgSz w:w="11906" w:h="16838"/>
+        <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
+        <w:cols w:space="425"/>
+        <w:docGrid w:type="lines" w:line-pitch="312"/>
+      </w:sectPr>
+	 </#list>
+    </wx:sect>
+  </w:body>
+</w:wordDocument>