`
阅读更多

 

这个是基本的连接数据库代码(注意要加入连接oracle数据库的jar包):

导入的数据库就是String sc="jdbc:oracle:thin:@192.168.1.223:1521:test";对应的test数据库,所有的表结构都可以导出来。(需要修改为自己对应的ip和端口和数据库名称,上面的是我的地址和数据库)

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

public class ConnectionOracle {

 

/**

* @param args

*/

String sd="oracle.jdbc.driver.OracleDriver";

// String sc="jdbc:oracle:thin:@192.168.1.170:1521:cst";

String sc="jdbc:oracle:thin:@192.168.1.223:1521:test";

String userName = "adminss";

String password = "123456";

// String sd="com.mysql.jdbc.Driver";

// String sc="jdbc:mysql://localhost:3306/payManagerDB?useUnicode=true&characterEncoding=utf8";

Connection con=null;

Statement stmt=null;

ResultSet rs=null;


public ConnectionOracle()

  {

  try

  {

  Class.forName(sd);

  }

  catch(Exception e)

  {

  System.err.println(e.getMessage());

  }

  }

public static void main(String[] args) {

// TODO Auto-generated method stub


}

public ResultSet executeQuery(String sql) throws SQLException

  {

  con=DriverManager.getConnection(sc,userName,password);

  Statement stmt=con.createStatement();

  rs=stmt.executeQuery(sql);

  return rs;

  }

public void executeUpdate(String sql) throws SQLException

  {

  con=DriverManager.getConnection(sc,userName,password);

  Statement stmt=con.createStatement();

  stmt.executeUpdate(sql);

  }

public void close() throws SQLException

  {

if(rs!=null)

rs.close();

if(stmt!=null)

stmt.close();

if(con!=null)

con.close();

  }

}

 

 

下面的代码读取数据库中所有表以及结构到excel中(如果出现问题,首先看是不是你已经打开了这个excel,要先关闭):

 

import java.io.File;

import java.io.FileOutputStream;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

 

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFFont;

import org.apache.poi.hssf.usermodel.HSSFRichTextString;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.util.Region;

 

/**

 * 将oracle中的数据表结构导入到excel中保存

 * @class DataToExcel

 * @description 

 * @author 李智慧

 * @copyRight copyright(c) 2011 广东南航易网通电子商务有限公司,Rights Reserved

 * @time Dec 27, 2011 10:02:08 AM

 */

public class DataToExcel {

public static void main(String[] args) {

String result = "";

List listAll = new ArrayList();

System.out.println("正在读取数据库中所有的表");

try {

List tableList = getTableList();

System.out.println("数据库表读取完成");

for(int i=0;i<tableList.size();i++){

String[] strings = (String[]) tableList.get(i);

String tableName = strings[0].toString();

List list = new ArrayList();

list.add(tableName);

list.add(getStructOfTable(tableName));

System.out.println("正在生成表"+tableName+"的结构");

listAll.add(list);

}

result = TableStructInfoToExcel(listAll,"D:");

System.out.println("数据库中表结构导入已完成");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

File file = new File(e.getMessage().toString());

if(file.exists()){

file.delete();

}

}

System.out.println(result);

//showView(list); 

}


/**

* 获取数据库中所有的表

* @return

*/

public static List getTableList(){

String sql = "select object_name From user_objects Where object_type='TABLE'";

return getResult(sql,1);

}


/**

* 根据表明

* @param tableName

* @return

*/

public static List getStructOfTable(String tableName){

String sql = "SELECT u.column_name,u.data_type,u.data_length,u.data_precision,u.data_Scale,u.nullable,u.data_default,c.comments FROM user_tab_columns u,user_col_comments c"+

" WHERE u.table_name='"+tableName+"' and u.table_name=c.table_name and c.column_name=u.column_name";

return getResult(sql,8);

}


/**

* 获取结果的公用类

* @param sql

* @param length

* @return

*/

public static List getResult(String sql,int length){

List list = new ArrayList();

ResultSet rs=null;

ConnectionOracle c=new ConnectionOracle();

try {

rs=c.executeQuery(sql);

while(rs.next()){

String[] string = new String[length];

for(int i=1;i<length+1;i++){

string[i-1] = rs.getString(i);

}

list.add(string);

}

c.close();

} catch (SQLException e) {

e.printStackTrace();

}

return list;

}


/**

* 输出对应list中的数据

* @param list

*/

public static void showView(List list){

for (Iterator iterator = list.iterator(); iterator.hasNext();) {

String[] name = (String[]) iterator.next();

for (int i = 0; i < name.length; i++) {

System.out.println(name[i]);

}

}

}


/**

* 将数据导入到excel中

* @param list

* @param tableName

* @param path

* @return

* @throws Exception

*/

public static String TableStructInfoToExcel(List list,String path) throws Exception {

String FileName="";

FileOutputStream fos = null;

HSSFRow row = null;

HSSFCell cell = null;

HSSFCellStyle style = null;

HSSFFont font = null;

int currentRowNum = 0;

String[] tableFiled = {"column_name","data_type","data_length","data_precision","data_Scale","nullable","data_default","comments"};

try{

FileName = path +"\\"+"CSN数据库中表结构.xls";

fos = new FileOutputStream(FileName);

//创建新的sheet并设置名称

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet s = wb.createSheet();

wb.setSheetName(0, "CSN数据库表结构");

style = wb.createCellStyle();

font = wb.createFont();


for(int z=0;z<list.size();z++){

List listBean = (List) list.get(z);

//新建一行,再在行上面新建一列

row = s.createRow(currentRowNum);

int pad = currentRowNum;

currentRowNum++;

//设置样式

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   //字体加粗

style.setFont(font);

style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中

style.setFillForegroundColor((short) 13);// 设置背景色

style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框

style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框

style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框

style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

for(int i=0;i<tableFiled.length;i++){

cell = row.createCell((short) i);

cell.setCellValue("");

cell.setCellStyle(style);

}

row.getCell((short) 0).setCellValue("数据库表"+listBean.get(0).toString()+"的结构");

//创建第二行

row = s.createRow(currentRowNum);

currentRowNum++;

for(int i=0;i<tableFiled.length;i++){

//创建多列并设置每一列的值和宽度

cell = row.createCell((short) i);

cell.setCellValue(new HSSFRichTextString(tableFiled[i]));

s.setColumnWidth((short)i,(short)5000);

}

List list2 = (List) listBean.get(1);

for(int i=0;i<list2.size();i++){

row = s.createRow(currentRowNum);

currentRowNum++;

String[] strings = (String[]) list2.get(i);

for(int j=0;j<strings.length;j++){

cell = row.createCell((short) j);

cell.setCellValue(new HSSFRichTextString(strings[j]));

}

}

//合并单元格

s.addMergedRegion(new Region(pad,(short)0,pad,(short)(tableFiled.length-1)));

currentRowNum ++;

}


wb.write(fos);

fos.close();

}catch (Exception e) {

e.printStackTrace();

fos.close();

throw new Exception(FileName);

}

return FileName;

}

}

 
最后总结一下:
关键性的代码:
一:读取数据库中的所有表
select object_name From user_objects Where object_type='TABLE';
 
二:读取对应表中的结构,下面测试是用CITYNB(这里没有加主键和外键信息,以后加上,有兴趣的朋友可以自己完成,弄好以后,希望给我借鉴一下,呵呵,相互学习嘛,如果还有问题,请联系我:lizhihui19871127@163.com)
SELECT u.column_name,u.data_type,u.data_length,u.data_precision,u.data_Scale,u.nullable,u.data_default,c.comments FROM user_tab_columns u,user_col_comments c
  WHERE u.table_name='CITYNB' and u.table_name=c.table_name and c.column_name=u.column_name;
 
分享到:
评论
2 楼 壹伍叁柒 2015-05-28  
感谢楼主。调整一下收了~
1 楼 cevin15 2012-04-24  
一不小心,拿了作者的成果方便了一下自己的工作!谢谢分享~~

相关推荐

    Oracle数据库表结构导出工具Excel

    "Oracle数据库表结构导出工具Excel"就是为了解决这样的需求而设计的。 DBExport是一款高效实用的工具,专门用于将Oracle数据库的表结构信息转换成Excel格式。这款工具允许管理员或开发者轻松地导出数据库中的表定义...

    oracle导出表结构到excel中

    在Oracle数据库管理中,将表结构导出到Excel文件是一个常见的需求,这有助于数据分析、报告制作或数据共享。以下是一个详细的步骤指南,介绍如何完成这个任务。 首先,我们需要准备一个SQL查询来获取所需表的数据...

    Oracle数据库表结构导出工具

    "Oracle数据库表结构导出工具"就是为此目的设计的实用程序,它能够方便地将表结构转换成易于查看和处理的Excel文件。 DBExport是一个这样的工具,正如其名称"DBExport2.51 For ORACLE"所示,它专门针对Oracle数据库...

    c# 导出oracle数据库下所有表结构

    本话题将深入探讨如何利用C#来导出Oracle数据库中的所有表结构。 首先,我们需要安装必要的库来连接到Oracle数据库。Oracle提供了一个名为ODP.NET(Oracle Data Provider for .NET)的驱动程序,它允许C#应用程序与...

    java实现导出oarcle表结构到excel

    在Java编程环境中,将Oracle数据库的表结构导出到Excel是一种常见的需求,特别是在数据库管理和数据分析时。这个场景可以通过两个核心类来实现:`TableStructureToExcel.java`和`ConnectionOracle.java`。这两个类...

    oracle数据库表,字段信息导出为excel

    总的来说,通过结合JDBC和Apache POI,我们可以实现从Oracle数据库中提取表结构信息,并将其导出为Excel文件,以满足数据管理和共享的需求。这个过程中,需要注意处理可能的异常,优化性能,以及保持代码的可读性...

    PowerDesigner 导出表结构 到Excel

    1,打开PowerDesigner,找到创建的物理模型(Physical Data Model), 2,使用快捷键,或者 在PowerDesigner菜单栏中,依次点击“Tools -&gt;Excute Commands-&gt;Edit/Run Script....4,将导出的结果(Excel)保存到自己的位置

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

    通过将表结构导出到Excel,我们可以更直观地查看这些信息,比如用不同的颜色或样式高亮显示主键字段,或者在Excel中使用公式和图表进行进一步的数据分析。 "导出"操作通常涉及SQL查询,这些查询从数据库中提取所需...

    DBExport2.51 Oracle数据库表结构导出工具 .rar

    DBExport2.51 For Oracle(Oracle数据表导出器)是一套用来完成将Oracle数据库中的表结构导出到Excel,并输出标准的打印报表格式的软件。 软件采用Excel中VBA开发完成,软件使用Excel中的菜单操作,与Excel完全集成...

    excel导出数据到oracle数据库

    本教程将深入探讨如何将Excel数据导出并导入到Oracle数据库中,这对于数据分析、报表制作以及数据迁移等场景非常有用。以下是对这个主题的详细阐述: 一、Excel与Oracle数据库简介 Excel是一款由Microsoft开发的...

    Oracle表结构导出Excel工具

    【Oracle表结构导出Excel工具】是一款专门设计用于将Oracle数据库中的表结构信息导出为Excel格式的实用程序。这个工具对于数据库管理员和开发人员来说非常有用,因为它提供了方便的方式来查看、管理和分享Oracle...

    excel导入数据到Oracle数据库

    在日常工作中,我们经常会遇到需要将Excel中的数据批量导入到Oracle数据库的情况。这一过程不仅可以提高工作效率,还能确保数据的一致性和准确性。本文将详细介绍如何将Excel数据导入到Oracle数据库的具体步骤。 ##...

    导出Oracle 表结构工具

    然而,有时候我们需要将Oracle数据库中的表结构和内容导出到其他格式,例如Excel,以便于数据分析、报表制作或与其他系统进行数据交换。"导出Oracle表结构工具"就是这样一个实用程序,它简化了这个过程。 DBExport...

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

    1. **Oracle数据库表结构**:表结构是指数据库中表的设计,包括字段(列)、数据类型、主键、外键、索引、约束等信息。了解表结构对于数据库设计和维护至关重要。 2. **SQL查询**:导出表结构通常涉及SQL语句,如`...

    powerdesign表结构导出到EXCEL脚本

    2. **选择要导出的对象**:在项目中,选择你需要导出到Excel的表结构。你可以通过选择整个数据库、特定的表或视图来定制导出内容。 3. **设置导出选项**:在“文件”菜单中,找到“导出”选项,然后选择“Excel”...

    Oracle表结构导出工具Excel.rar

    "DBExport For ORACLE" 是一个实用工具,它能够帮助用户方便地将Oracle数据库中的表结构导出为Excel格式,便于查看和编辑。 "DBExport For ORACLE 使用手册.doc" 是该工具的操作指南,通常会详细解释如何安装、配置...

    oracle 数据库导出excel工具

    "Oracle数据库导出Excel工具"就是为此目的设计的,它可以方便地将Oracle用户下的数据库所有表及其相关的注释转换为Excel文件,创建一个数据模型字典。 首先,这个工具的核心工作流程可能包括以下几个步骤: 1. **...

    数据库结构导出excel

    8. **协同工作**:将数据库结构导出到Excel后,非技术人员也能更容易地理解和参与到讨论中,这对于跨部门的项目合作尤其有价值。例如,业务分析师可以使用Excel来分析数据模型,而开发人员则可以基于这些模型进行...

    将oracle中的表结构导出的工具包

    【Oracle表结构导出工具包】是一个集合了各种依赖库的压缩包,旨在帮助用户方便地从Oracle数据库中导出表结构。这个工具包的核心功能是将Oracle数据库的表定义转换为可读的Excel格式,便于管理和分享。下面将详细...

Global site tag (gtag.js) - Google Analytics