资源简介

mysql数据库,生成Word文档,表结构,含注释,简单,易用

资源截图

代码片段和文件信息

package test;

import java.awt.Color;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Table;
import com.lowagie.text.rtf.RtfWriter2;

/**
 * 数据字典生成器 Mysql
 * 
 * @author Eric zhou
 * 
 */
public class Test {
// 键类型字典
private static Map keyType = new HashMap();
// 初始化jdbc
static {
try {
keyType.put(“PRI“ “主键“);
keyType.put(“UNI“ “唯一键“);
Class.forName(“com.mysql.jdbc.Driver“);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private static String url = “jdbc:mysql://192.168.0.16:3316/test?useUnicode=true&characterEncoding=UTF-8“;// 链接url
private static String username = “root“; // 用户名
private static String password = “123456“; // 密码
private static String schema = “test“; // 目标数据库 名
// 查询所有表的sql语句
private static String sql_get_all_tables = “select table_nametaBLE_COMMENT from INFORMATION_SCHEMA.tables where TABLE_SCHEMA=‘“ + schema + “‘ and TABLE_TYPE=‘base TABLE‘“;
// 查询所有字段的sql语句
private static String sql_get_all_columns = “select column_namedata_typecharacter_octet_lengthCOLUMN_COMMENTis_nullableCOLUMN_key from information_schema.‘COLUMNS‘ where TABLE_NAME=‘{table_name}‘ and TABLE_SCHEMA=‘“ + schema + “‘“;

public static void main(String[] args) throws Exception {
// 初始化word文档
Document document = new Document(PageSize.A4);
RtfWriter2.getInstance(document new FileOutputStream(“E:/test.doc“));//生成目录
document.open();
// 查询开始
Connection conn = getConnection();
// 获取所有表
List tables = getDataBySQL(sql_get_all_tables conn);
int i = 1;
for (Iterator iterator = tables.iterator(); iterator.hasNext();) {
String[] arr = (String[]) iterator.next();
// 循环获取字段信息
System.out.print(i + “.正在处理数据表-----------“ + arr[0]);
addTablemetaData(document arr i);
List columns = getDataBySQL(sql_get_all_columns.replace(“{table_name}“ arr[0]) conn);
addTableDetail(document columns);
addBlank(document);
System.out.println(“...done“);
i++;
}
document.close();
conn.close();
}

/**
 * 添加一个空行
 * 
 * @param document
 * @throws Exception
 */
public static void addBlank(Document document) throws Exception {
Paragraph ph = new Paragraph(““);
ph.setAlignment(Paragraph.ALIGN_LEFT);
document.add(ph);
}

/**
 * 添加包含字段详细信息的表格
 * 
 * @param document
 * @param arr1
 * @param columns
 * @throws Exception
 */
public static void addTableDetail(Document document List columns) throws Exception {
Table table = new Table(6);
table

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    2243307  2017-12-25 10:12  itext-4.2.1.jar

     文件       6958  2018-04-09 11:07  Test.java

----------- ---------  ---------- -----  ----

              2250265                    2


评论

共有 条评论