`

导出数据库设计结构为Excel表格,数据库字段操作

阅读更多
第一步:
package DB;

import java.util.HashMap;
import java.util.Map;
/**
* 数据库字段数据类型与数字之间的对应关系
* @author lxzqz
*
*/
public class Types {
protected final static Map<Integer, String> MAP = new HashMap<Integer, String>();
public static final int ARRAY = 2003;
public static final int BIGINT = -5;
public static final int BINARY = -2;
public static final int BIT = -7;
public static final int BLOB = 2004;
public static final int BOOLEAN = 16;
public static final int CHAR = 1;
public static final int CLOB = 2005;
public static final int DATALINK = 70;
public static final int DATE = 91;
public static final int DECIMAL = 3;
public static final int DISTINCT = 2001;
public static final int DOUBLE = 8;
public static final int FLOAT = 6;
public static final int INTEGER = 4;
public static final int JAVA_OBJECT = 2000;
public static final int LONGNVARCHAR = -16;
public static final int LONGVARBINARY = -4;
public static final int LONGVARCHAR = -1;
public static final int NCHAR = -15;
public static final int NCLOB = 2011;
public static final int NULL = 0;
public static final int NUMERIC = 2;
public static final int NVARCHAR = -9;
public static final int OTHER = 1111;
public static final int REAL = 7;
public static final int REF = 2006;
public static final int ROWID = -8;
public static final int SMALLINT = 5;
public static final int SQLXML = 2009;
public static final int STRUCT = 2002;
public static final int TIME = 92;
public static final int TIMESTAMP = 93;
public static final int TINYINT = -6;
public static final int VARBINARY = -3;
public static final int VARCHAR = 12;
/**
* 根据需要添加数字与数据类型字符串的对应关系
*/
static {
MAP.put(12, "VARCHAR");
MAP.put(4, "INTEGER");
MAP.put(2005, "CLOB");
MAP.put(2004, "BLOB");
MAP.put(91, "DATE");
MAP.put(-5, "BIGINT");
MAP.put(1, "CHAR");
MAP.put(93, "TIMESTAMP");
MAP.put(2, "NUMERIC");
MAP.put(5, "SMALLINT");
}
}
第二步:
package DB;
/**
* 数据库连接凭证
* @author lxzqz
*
*/
public class DBInfo {
//数据库地址,数据库端口号,数据库名称
private String url;
//用户名
private String user;
//密码
private String password;
//数据库驱动
private String driver;
public DBInfo() {}
public DBInfo(String url, String user, String password, String driver) {
this.setUrl(url);
this.setUser(user);
this.setPassword(password);
this.setDriver(driver);
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
/**
* 执行生成Excel表格
* @throws Exception
*/
public void doIt() throws Exception{
DBToTable.main(this);
}

public static void main(String[] args) throws Exception{
DBInfo info = new DBInfo("jdbc:kingbase://172.24.38.5:54321/tourism", "bjlyw", "bjlyw", "com.kingbase.Driver");
info.doIt();
}
}
第三步:需要提供数据库驱动包,以及操作Excel表的jxl.jar包
package DB;
import java.io.File;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/**
* 导出数据库设计结构为Excel表格
* @author lxzqz
*
*/
public class DBToTable {
protected static void main(DBInfo info) throws Exception{
Class.forName(info.getDriver());
Connection conn = DriverManager.getConnection(info.getUrl(), info.getUser(), info.getPassword());
DatabaseMetaData databaseMetaData = conn.getMetaData();
ResultSet tables = databaseMetaData.getTables(null, "PUBLIC", "%", new String[]{"TABLE"});
String path = "E://数据库设计.xls";
WritableWorkbook book = Workbook.createWorkbook(new File(path));
// 生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("第一页 ", 0);
int i = 0;
while(tables.next()) {
String tableName = tables.getString("TABLE_NAME");
ResultSet columns = databaseMetaData.getColumns(null, "%", tableName, "%");
/**
* COLUMN_NAME String => 列名称
DATA_TYPE int => 来自 java.sql.Types 的 SQL 类型
COLUMN_SIZE int => 列的大小。
REMARKS String => 描述列的注释
IS_NULLABLE String => ISO 规则用于确定列是否包括 null。
YES --- 如果参数可以包括 NULL
NO --- 如果参数不可以包括 NULL
*/
sheet.mergeCells(0, i, 5, i + 1);
WritableCellFormat format = new WritableCellFormat();
format.setAlignment(Alignment.CENTRE);
format.setVerticalAlignment(VerticalAlignment.CENTRE);
Label label = new Label(0, i, "表名" + tableName, format);
i += 2;
Label label2 = new Label(0, i, "字段名", format);
sheet.addCell(label2);
Label label3 = new Label(1, i, "属性名", format);
sheet.addCell(label3);
Label label4 = new Label(2, i, "类型", format);
sheet.addCell(label4);
Label label5 = new Label(3, i, "长度", format);
sheet.addCell(label5);
Label label6 = new Label(4, i, "是否可空", format);
sheet.addCell(label6);
Label label7 = new Label(5, i, "注解", format);
sheet.addCell(label7);
sheet.addCell(label);
while(columns.next()) {
++i;
//列明
String colName = columns.getString("COLUMN_NAME");
Label C = new Label(0, i, colName, format);
sheet.addCell(C);
//注解-属性名
String remarks = columns.getString("REMARKS");
Label R = new Label(1, i, remarks, format);
sheet.addCell(R);
//数据类型-数字
int type = columns.getInt("DATA_TYPE");
//数据类型-字符串
String typeName = Types.MAP.get(type);
Label T = new Label(2, i, typeName, format);
sheet.addCell(T);
//数据长度
int length = columns.getInt("COLUMN_SIZE");
Label L = new Label(3, i, length + "", format);
sheet.addCell(L);
//是否为空
String isNull = columns.getString("IS_NULLABLE");
isNull = "YES".equals(isNull) ? "NULL" : "NOT NULL";
Label N = new Label(4, i, isNull, format);
sheet.addCell(N);
Label RR = new Label(5, i, remarks, format);
sheet.addCell(RR);
}
i += 3;
}
// 写入数据并关闭文件
book.write();
book.close();
}
}
分享到:
评论

相关推荐

    DatabaseExportExcel_导出数据库表结构为excel文件_excel_

    "DatabaseExportExcel_导出数据库表结构为excel文件_excel_"这个主题涉及到将数据库中的表结构转换成易于查看和分析的Excel格式。这种操作通常是为了方便非技术人员理解数据库结构,进行数据分析或者报表制作。下面...

    导出数据库表结构(excel)程序

    在IT领域,数据库管理和数据...总的来说,"导出数据库表结构(excel)程序"是数据库管理和数据分析流程中一个实用的工具,它帮助用户将复杂的数据库信息转化为易于理解和操作的Excel文件,从而提高工作效率和协作能力。

    数据库结构导出excel

    3. **导出数据库结构**:导出数据库结构通常是通过DBMS的管理工具或第三方软件完成的,它将数据库的元数据(如表名、字段名、数据类型、约束等)转换为文件格式,例如XML、CSV或Excel。这样可以保存为备份,或者在...

    从excel模版生成数据库表DDL,excel设计mysql,excel设计表格模板转成mysql表文件,

    "从Excel模版生成数据库表DDL,excel设计mysql,excel设计表格模板转成mysql表文件"这个主题涉及到了一种高效且直观的方法,它允许开发人员或数据库管理员使用熟悉的Excel工具来设计数据库结构,然后自动转换为MySQL...

    最简单的MDB数据库转换保存为excel表格的方法

    标题中的“最简单的MDB数据库转换保存为Excel表格的方法”指的是将Microsoft Access的MDB数据库文件转换成Excel电子表格的过程。MDB是Access数据库的标准文件格式,它用于存储和管理数据,包括表、查询、窗体、报表...

    Android 导出数据库到Excel表格功能

    4. **转换数据格式**:SQLite数据库中存储的数据可能包含日期、时间等特殊类型,导出时需要将它们转换为适合Excel的格式。例如,日期可以转换为"YYYY-MM-DD"字符串格式。 5. **生成CSV文件**:遍历数据库的结果集,...

    Access数据库导出数据到Excel.zip

    导出数据的过程就是将这些存储在表中的信息转换为Excel电子表格格式。 步骤一:打开Access数据库 启动Access,找到并打开包含你需要导出数据的数据库文件。如果你还没有创建数据库,可以先创建一个,定义好需要的表...

    asp将EXCEL导入导出数据库原程序

    - 构建SQL语句:根据Excel表格结构,创建INSERT INTO语句,为每个字段指定值。 - 执行SQL:通过Connection对象的Execute方法执行导入操作。 2. **数据库数据导出**: - 查询数据:使用SQL语句从MSSQL数据库中...

    导出数据库(Oracle)表结构为excel(含注释)(源码)

    在日常工作中,有时我们需要将数据库的表结构导出为更易于查看和分享的格式,比如Excel。这个场景下,标题和描述提及的方法就是一种解决方案,即通过源代码将Oracle数据库的表结构转换成带有注释的Excel文件。 首先...

    C# .net 实现表结构excel表格导出

    在C# .NET环境中,实现将SQL Server数据库的表结构导出为Excel表格是一项常见的需求。这个项目使用Visual Studio 2013作为开发工具,它包含两个关键部分:一个数据库测试登录界面和一个用于导出表结构的界面。下面...

    POI +反射导出数据库到excel

    通过JDBC,我们可以建立数据库连接,执行SQL语句,然后将结果集转换为Java对象,以便于填充到Excel表格中。 **文件列表解析**: 1. **poi-ooxml-schemas-3.9-20121203.jar**:包含OOXML(Office Open XML)的模式...

    从MySQL数据库中获取表格的结构信息,然后将其写入Excel文件中 效果一级棒,谁用谁知道

    # 从MySQL数据库中获取表格的结构信息,然后将其写入Excel文件中。具体实现步骤包括: # 代码实现说明 # 1定义数据库连接信息和表名前缀; # 2创建一个新的Excel工作簿; # 3连接MySQL数据库,并创建游标对象; # 4...

    数据库操作_excel表格sQ_CSVSQL_数据库_

    Excel表格、CSV文件以及SQL语言是数据库操作中的常用工具。本篇文章将详细介绍如何利用这些工具进行有效的数据管理。 首先,Excel表格是一种广泛使用的电子表格软件,尤其适合处理小到中等规模的数据集。在数据库...

    数据库导出EXCEL

    数据库导出到Excel是数据管理和分析中常见的操作,尤其在IT行业中,这是一项基础且重要的技能。Excel作为广泛使用的电子表格工具,能够处理和展示大量数据,便于数据分析、报表制作和共享。以下将详细讲解这一过程...

    数据库数据表导出到Excel

    数据库数据表导出到Excel是一项常见的操作,尤其在数据分析、报表制作和共享信息时非常有用。这个场景中,我们关注的焦点是如何利用编程语言(如VB,Visual Basic)实现这一功能,同时考虑到数据的规模限制,即每个...

    maven-根据数据库导出word或Excel

    本项目名为“maven-根据数据库导出word或Excel”,其核心功能是根据数据库中的数据自动生成Word文档和Excel表格,同时也能生成XML文件。这个功能在数据报告、文档自动化和数据分析场景中非常实用。 首先,我们要...

    excel和数据库之间数据的导入导出

    - 保持良好的数据组织结构,如使用统一的字段名和数据类型,以简化导入导出过程。 - 导入导出前,检查数据的完整性和一致性,防止无效数据引入或丢失。 - 定期备份数据,以防意外情况导致数据丢失。 总之,Excel与...

    Excel导入导出数据库小工具源码

    标题“Excel导入导出数据库小工具源码”指的是一个编程工具,它的主要功能是协助用户在Excel电子表格和各种数据库之间进行数据的导入与导出。这个工具对于数据处理、分析或者需要频繁交换数据的场景非常有用,尤其...

    数据库图片保存到Excel代码工程

    本项目“数据库图片保存到Excel代码工程”显然关注的是如何将存储在数据库中的图片数据导出并嵌入到Excel工作表中,以便于可视化报告的创建或数据的便捷查看。下面将详细介绍这一过程涉及的关键技术点。 首先,我们...

    连接数据库,根据数据库表格式导出excel数据字段内容及注释

    在这个项目中,数据库中的表信息,如字段名、字段类型、长度、是否为主键、注释等,会被转换为Excel表格,便于用户查看和分享。 项目部署过程包括以下步骤: 1. 下载并解压`export-database-structure-master`...

Global site tag (gtag.js) - Google Analytics